home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / docs / misc / amiga_faq940927g.lha / AmigaFAQ / AmigaFAQg.doc next >
Encoding:
Text File  |  1994-09-27  |  113.0 KB  |  2,563 lines

  1.   Amiga-FAQ
  2.   *********
  3.   
  4.      Dieses Dokument enthält einige häufig gestellte Fragen und
  5.   versucht, Antworten zu geben. Seine Absicht ist es, neuen Benutzern zu
  6.   helfen und die Zahl der News-Artikel zu reduzieren, die erfahrene
  7.   Benutzer nicht mehr sehen wollen.
  8.   
  9.      Bitte beachten Sie, daß viele Abschnitte bis jetzt noch fast
  10.   völlig leer sind. Ich verstehe von den betreffenden Abschnitten nichts
  11.   und habe nicht das Gefühl, als ob ich daran etwas ändern könnte.
  12.   Damit sind Sie an der Reihe: Füllen Sie die Lücken und teilen Sie mir
  13.   mit, was man hier noch aufnehmen kann!
  14.   
  15.  
  16.   Disclaimer
  17.  
  18.   1 Hardware
  19.     1 Was sind 68EC020, 68EC030 und 68LC040?
  20.     2 Was ist ein mathematischer Coprozessor (FPU) ?
  21.     3 Kann ich eine 3.5"-Festplatte im A1200 verwenden?
  22.  
  23.   2 Das Betriebssystem
  24.     1 Kann ich eine andere als die eingebaute Kickstart benutzen?
  25.     2 Was entspricht unter AmigaDOS dem . (Aktuelles Directory)?
  26.     3 Der Queue-Handler PIPE:
  27.       1 Verwendung von PIPE: in einer AmigaShell
  28.       2 Das Pipe-Kommando
  29.       3 Das Pipe-Kommando in der AmigaShell
  30.       4 Die _mchar-Variable
  31.       5 Bekannte Probleme
  32.  
  33.   3 Programmierung
  34.     1 Was ist die beste Dokumentation für Programmierer?
  35.     2 Was ist CATS?
  36.     3 Wo bekomme ich die Amiga-Include-Dateien?
  37.     4 Wie werde ich Developer?
  38.     5 Was für Compiler (und Assembler) gibt es?
  39.     6 Warum funktioniert keine Esc-Sequenz?
  40.     7 Kann ich AmigaBasic auf dem A1200 verwenden?
  41.     8 Wie lokalisiere ich mein Programm?
  42.     9 Wie erhält man einen Zeiger auf das Fenster einer Konsole?
  43.     10 Was sind Pragmas?
  44.     11 Mein Compiler/Linker vermißt Symbole.
  45.     12 Wie erfahre ich, was für Funktionen es gibt?
  46.     13 Der GNU C Compiler: Allgemeine Informationen und Installation
  47.       1 Aktuelle Version
  48.       2 Hardwareanforderungen
  49.       3 Wer hat es gemacht?
  50.       4 Wo finde ich die gcc-Quelltexte?
  51.       5 Inline-Dateien
  52.       6 Wie konvertiere ich die Amiga-Libraries für den gcc?
  53.       7 Wie installiere ich den gcc?
  54.       8 Wichtige Informationsquellen
  55.  
  56.   4 Anwendungen
  57.     1 Text-Editoren
  58.     2 Was für Textverarbeitungsprogramme gibt es?
  59.     3 Desktop Publishing
  60.     4 Was ist TeX und wo bekomme ich es?
  61.     5 Gibt es PostScript-Interpreter auf dem Amiga?
  62.  
  63.   5 Grafik
  64.     1 Was heißt Chunky- und Planar-Display?
  65.     2 Was ist Doublebuffering?
  66.     3 Was für Monitore arbeiten am Amiga 1200 oder 4000?
  67.  
  68.   6 Emulationen
  69.     1 Kann ich meinen Amiga unter Unix benutzen?
  70.     2 Ist es möglich, den Amiga als X11-Terminal zu benutzen?
  71.  
  72.   7 Verschiedenes
  73.     1 Gibt es eine Unix-Version von LhA?
  74.     2 Was sind Dateien, die mit ... enden?
  75.     3 Gibt es ein Programm wie Stacker, um die Hard-Disk zu packen?
  76.     4 Wo bekomme ich Fish-Disk xxx?
  77.     5 Wie füllt man die Tintenkartuschen der HPDeskjet-Drucker nach?
  78.     6 Was ist MUI und wo bekomme ich es?
  79.  
  80.   8 Software-Quellen und andere Informationen?
  81.     1 Dateien und Datenbanken zur frei kopierbaren Software
  82.     2 Eine Sammlung von Testberichten
  83.     3 Empfangen von Dateien von einem FTP-Server
  84.     4 Empfangen von Dateien von einem Mail-Server
  85.     5 Empfangen von Dateien von einer Mailbox
  86.     6 Die Fish-PD-Serie
  87.       1 Die Amiga-Library-Disks
  88.       2 Die Fresh-Fish-Serie
  89.     7 Wie kann ich MS-Dos-Disketten lesen und schreiben?
  90.     8 Wie transportiere ich sehr große Dateien
  91.     9 Diskussionen über Mail
  92.     10 Andere FAQ's
  93.  
  94.   Das Amiga-FAQ-Archiv
  95.  
  96.   Beiträge zur Amiga-FAQ
  97.  
  98.   Danksagungen
  99.  
  100.   Index
  101.  
  102.  
  103.  
  104.   Disclaimer
  105.   **********
  106.   
  107.      Diese Datei steht unter dem
  108.   
  109.        Copyright (C)  Ignaz Kellerer
  110.                        Georg-Habel-Str. 11
  111.                  81241 München (Deutschland)
  112.                        Tel. (+49) 089 / 885147
  113.                        Internet: kellerer@informatik.tu-muenchen.de
  114.   
  115.      Es ist erlaubt, sowohl veränderte als auch unveränderte Kopien
  116.   dieser Datei herzustellen und zu verteilen, vorausgesetzt, daß dabei
  117.   die Bestimmungen der "GNU General Public License" eingehalten werden und
  118.   die Copyright-Notiz sowie diese Erlaubnis unverändert auf allen Kopien
  119.   enthalten sind.
  120.   
  121.      Der Autor gibt *absolut keine* Garantie, daß die hier gegebenen
  122.   Antworten korrekt sind. Einige dieser Antworten sind von anderen
  123.   Benutzern beigetragen worden und ich habe teilweise nicht einmal die
  124.   Möglichkeit, auch nur die einfachsten Tests durchzuführen.
  125.   Vorschläge, weitere Beiträge, neue Fragen und Antworten, Kritik und
  126.   Beschimpfungen (oh, wie ich mein `nil:' liebe :-) sind aber sehr
  127.   willkommen.  Siehe Beiträge.
  128.   
  129.   1 Hardware
  130.   **********
  131.   
  132.      Dieses Kapitel enthält Fragen zur Amiga-Hardware.
  133.   
  134.   1.1 Was sind 68EC020, 68EC030 und 68LC040?
  135.   ==========================================
  136.   
  137.      Motorola, die Herstellerfirma der 680x0-Familie, bietet auch
  138.   gestutzte Versionen ihrer Prozessoren an. Diese sind etwas
  139.   preisgünstiger als die Originale, weshalb Commodore auch den 68EC020 in
  140.   den A1200 und den 68EC030 in den A4000/030 einbaut. Dafür können sie
  141.   aber auch etwas weniger.
  142.   
  143.      Der Unterschied zwischen 68020 und 68EC020 ist, daß letzterer nur
  144.   16MB Speicher adressieren kann. (Das ist der Grund, warum der A1200 nur
  145.   maximal 10MB RAM haben kann.) In den meisten Fällen sollte man den
  146.   Unterschied aber gar nicht bemerken.
  147.   
  148.      Das ist beim 68EC030 anders: Viele Benutzer werden feststellen, daß
  149.   der 68030 eine MMU (Memory management unit) hat und der 68EC030 nicht.
  150.   (Beim 68020 gibt es noch die Möglichkeit, eine externe MMU, den 68851
  151.   nachzurüsten.) Es gibt einige wichtige Programme, die eine MMU
  152.   brauchen, z.B. Enforcer (ein Hilfsprogramm zur Fehlersuche), GigaMem
  153.   (ein Programm zur Emulation von virtuellem RAM) oder alle aktuellen
  154.   Unix-Versionen (siehe Unix). Wer eines dieser Programme verwenden will
  155.   und keinen A4000 oder A3000 hat, braucht deshalb eine Prozessorkarte
  156.   mit einem 68030 oder 68040.
  157.   
  158.      Der 68LC040 ist ein 68040 ohne FPU. Siehe FPU.
  159.   
  160.   1.2 Was ist ein mathematischer Coprozessor (FPU) ?
  161.   ==================================================
  162.   
  163.      Die Prozessoren 68000 bis 68030 bieten ausschließlich Integer (=
  164.   Ganzzahl) Arithmetik. Floating-Point (Fließkomma) Operationen werden
  165.   über eine Befehlssequenz ausgeführt. Floating-Point Units (FPUs) bzw.
  166.   mathematische Koprozessoren sind für diese Aufgaben optimiert.
  167.   
  168.      Im wesentlichen kann man drei FPU-Typen unterscheiden: Den 68881,
  169.   68882 und die interne FPU des 68040. Aufgrund der Trennung von
  170.   Arithmetikeinheit und Konvertierlogik (notwenig zur Konversion
  171.   anliegender Zahlenformate in das prozessoreigene 80bit-Format) ist die
  172.   68882 FPU bis zu 1.5 mal schneller als die 68881. Die interne FPU des
  173.   68040 besitzt darüber hinaus eine dreistufige Pipeline, allerdings
  174.   sind in ihr nicht alle Befehle der 68881/68882 realisiert. Die
  175.   fehlenden (trigonometrischen) Befehle werden per Software emuliert
  176.   (z.B. über die 68040.library).
  177.   
  178.      Für viele Programme (Raytracing, DTP, Mathematik, TeX) existieren
  179.   spezielle Coprozessorversionen. Je nach Auslastungsgrad kann damit eine
  180.   Geschwindigkeitssteigerung bis zum Faktor 50 erreicht werden.
  181.   
  182.      Michael Kaiser (kaiser@ira.uka.de)
  183.   
  184.   1.3 Kann ich eine 3.5"-Festplatte im A1200 verwenden?
  185.   =====================================================
  186.   
  187.      Viele Leute würden statt der im A1200 üblichen 2.5"-Festplatten
  188.   lieber eine 3.5"-Festplatte verwenden, da diese viel billiger sind. Das
  189.   ist auch möglich, allerdings braucht man ein spezielles Kabel, um die
  190.   Festplatte an den eingebauten IDE-Controller anzuschließen. Außerdem
  191.   sollte man isolierendes Material zwischen die Festplatte und die
  192.   Platine schieben. Es gibt Berichte über thermische Probleme, aber ich
  193.   habe nichts davon bemerkt.
  194.   
  195.      Einige Händler bieten für ca. 40-50DM Kabel, Isoliermaterial und
  196.   Informationen an, was sicherlich empfehlenswert ist. In den üblichen
  197.   Magazinen sollte man diesbezügliche Anzeigen finden.
  198.   
  199.      Thomas Schuh (thomas@stepout.tynet.sub.org)
  200.   
  201.   2 Das Betriebssystem
  202.   ********************
  203.   
  204.      Dieses Kapitel behandelt Fragen sowohl zum Betriebssystem Kickstart
  205.   als auch zur Oberfläche Workbench.
  206.   
  207.   2.1 Kann ich eine andere als die eingebaute Kickstart benutzen?
  208.   ===============================================================
  209.   
  210.      Zunächst ein paar Worte zur Legalität der Benutzung einer anderen
  211.   Kickstart: Es ist *nicht* erlaubt, Kopien von Kickstarts fremder
  212.   Computer zu erstellen und auf einem anderen Computer zu benutzen! (Es
  213.   ist sogar fraglich, ob man das auf eigenen Maschinen darf, wenn man
  214.   mehr als einen Amiga hat.)
  215.   
  216.      Natürlich ist es möglich und für gewisse Personen (z.B. Developer,
  217.   siehe Developer) auch erlaubt.  Es gibt zwei verschiedene
  218.   Möglichkeiten, eine Hardware- und eine Softwarelösung. Erstere ist,
  219.   eine Platine in den Computer einzubauen, die sowohl die eigene als auch
  220.   eine andere Kickstart aufnehmen kann, zwischen denen man dann
  221.   umschalten kann.
  222.   
  223.      Die Softwarelösung benötigt ein Programm (einen sogenannten
  224.   Softkicker) und die Kopie der anderen Kickstart. Der Softkicker
  225.   alloziert RAM, lädt die Kickstart-Kopie in dieses RAM und führt einen
  226.   Reset aus. Natürlich fehlt dann nach dem Reboot unter der neuen
  227.   Kickstart etwas RAM: 256KB weniger für Kickstart 1.2 oder 1.3 und
  228.   512KB für die neueren Kickstarts.  Es gibt verschiedene Softkicker,
  229.   von denen einige eine MMU benötigen (siehe 68EC0xx). Ich empfehle
  230.   SKick 3.43 (Aminet, Directory `util/boot') empfehlen, das keine MMU
  231.   braucht und viele verschiedene Kickstarts unterstützt. Die Kopie des
  232.   ROM zu erzeugen ist mit einem Programm wie dem Folgendem möglich:
  233.   
  234.            #include <stdio.h>
  235.        
  236.            #define kickorig 0xf80000   /*  0xfc0000 für Kick 1.2 und 1.3   */
  237.            #define kicklen  0x080000   /*  0x040000 für Kick 1.2 und 1.3   */
  238.        
  239.            void main(int argc, char*argv[])
  240.            {
  241.                FILE *fh;
  242.        
  243.                if ((fh = fopen("kickstart.file", "w"))  !=  NULL) {
  244.                    result = fwrite(kickorig, kicklen, 1, fh);
  245.                }
  246.                fclose(fh);
  247.            }
  248.   
  249.   2.2 Was entspricht unter AmigaDOS dem . (Aktuelles Directory)?
  250.   ==============================================================
  251.   
  252.      Unter AmigaDOS entspricht dem . (der das aktuelle Directory unter
  253.   Unix und gewissen nicht-reentranten Interrupt-Handlern repräsentiert)
  254.   der leere String, den man als "" schreibt.
  255.   
  256.      Beispiel:
  257.                COPY S:Startup-Sequence ""
  258.   
  259.   Dies kopiert Ihre Startup-Sequence in das aktuelle Directory.
  260.   
  261.      Es gibt verschiedene Programme, die AmigaDOS so patchen, daß es .
  262.   und .. wie unter Unix akzeptiert, z.B. UnixDirs. (Aminet,
  263.   `os20/util/UnixDirsII.lha' oder Fish-Disk 837)
  264.   
  265.      Arno Eigenwillig (arno@yaps.dinoco.de)
  266.   
  267.   2.3 Der Queue-Handler PIPE:
  268.   ===========================
  269.   
  270.      In AmigaOS 2.04 wurde ein neuer Handler eingeführt, der es erlaubt,
  271.   Daten zwischen verschiedenen Programmen auszutauschen. Dieser Handler
  272.   heißt `L:Queue-Handler', ist aber besser als `PIPE:' bekannt.
  273.   
  274.      `PIPE:' implementiert eine echte, Unix-artige `Pipe', mit der man
  275.   die Standardausgabe eines Programms als Standardeingabe eines anderen
  276.   Programms verwenden kann. Es ist auch möglich, mehrere Programme über
  277.   mehrere Pipes gleichzeitig zu verketten.  Pipes brauchen weniger RAM
  278.   für temporäre Dateien, und der Zugriff ist schneller.
  279.   
  280.      Allerdings unterscheidet sich `PIPE:' von Unix-Pipes in zwei
  281.   wesentlichen Punkten:
  282.     1. Es handelt sich um ein Device; die Ein- und Ausgabe von Programmen
  283.        muß also nicht unbedingt eine Datei sein, obwohl das meistens der
  284.        Fall ist. Man kann auch `PIPE:' wie andere Devices verwenden, aber
  285.        natürlich weder Directories lesen noch Seek-artige Zugriffe
  286.        durchführen.
  287.   
  288.     2. Es gibt keine Flush-Operation. Wenn nicht alle Daten gelesen
  289.        wurden, die in `PIPE:' geschrieben wurden, dann bleiben sie
  290.        stehen, bis sie evtl. von einem anderen Programm gelesen werden.
  291.        Man muß also Pipes immer leeren, bevor man sie schließt.
  292.   
  293.     3. Aus demselben Grund kann ein Programm blockiert werden, wenn es
  294.        die interne Puffergröße überschreibt. Auch dies wird durch
  295.        rechtzeitiges Leeren der Pipe vermieden.
  296.   
  297.      Der Handlername von PIPE: ist vollständig
  298.   `PIPE:name/bufsize/bufnum', wobei `name' den verwendeten Pipekanal
  299.   identifiziert und eindeutig sein sollte. Durch verschiedene Namen kann
  300.   man also gleichzeitig mehrere Pipe-Kanäle öffnen. Die optionalen
  301.   Argumente `bufsize' und `bufnum' geben die Größe und Anzahl der
  302.   verwendeten Datenpuffer an. Meist schreibt man einfach `PIPE:name', die
  303.   Vorgabegröße ist dann 4096 Bytes und die Anzahl unbegrenzt.
  304.   
  305.      Osma Ahvenlampi (Osma.Ahvenlampi@hut.fi)
  306.   
  307.   2.3.1 Verwendung von PIPE: in einer AmigaShell
  308.   ----------------------------------------------
  309.   
  310.      Zunächst muß `PIPE:' natürlich mit `Mount' angemeldet sein.  Dies
  311.   kann durch das Kommando
  312.            1> Mount PIPE:
  313.   
  314.   in der Shell geschehen, ab AmigaOS 2.1 auch dadurch, daß man die Datei
  315.   `PIPE' nach `DEVS:DosDrivers' schiebt.
  316.   
  317.      In einem AmigaShell-Fenster kann man dann folgende Kommandos
  318.   eingeben:
  319.            1> Run List SYS: >PIPE:Listoutput
  320.            1> More <PIPE:Listoutput
  321.   
  322.   (1)
  323.   
  324.      Diese beiden Kommandos erzeugen also zunächst eine Liste der Dateien
  325.   in `SYS:' und geben diese dann mit Hilfe des More-Kommandos aus.  Man
  326.   könnte auch folgendes probieren:
  327.            1> Run List SYS: NOHEAD >PIPE:Listoutput
  328.            1> Run Sort PIPE:Listoutput PIPE:Sortedoutput
  329.            1> More <PIPE:Sortedoutput
  330.   
  331.   Dies würde also die Liste vor der Ausgabe noch sortieren.
  332.   
  333.      Beachten Sie die Verwendung von `Run' außer für das jeweils letzte
  334.   Programm, durch die alle Programme gleichzeitig ablaufen.  Man kann
  335.   auch die Programme gleichzeitig in verschiedenen Shells ablaufen lassen.
  336.   
  337.      Das Leeren der Pipe kann auch manuell geschehen, vorausgesetzt man
  338.   kennt den Namen des verwendeten Kanals, indem man folgendes eingibt:
  339.            1> Type PIPE:name TO NIL:
  340.   
  341.      ---------- Footnotes ----------
  342.   
  343.      (1)  Dabei `1>' der Prompt der AmigaShell, die eine Eingabe
  344.   erwartet. Die Nummer kann natürlich variieren.
  345.   
  346.   2.3.2 Das Pipe-Kommando
  347.   -----------------------
  348.   
  349.      Im vorigen Beispiel ist die Verwendung von Pipes recht kompliziert,
  350.   vor allem verglichen mit Unix-Pipes. Es gibt aber eine bessere
  351.   Möglichkeit.
  352.   
  353.      Andy Finkel, der früher bei Commodore gearbeitet hat, hat auch ein
  354.   Kommando `Pipe' geschrieben (was man nicht mit `PIPE:' verwechseln
  355.   sollte!), das die Benutzung von Pipes stark vereinfacht.
  356.   Unglücklicherweise wurde dieses Programm letzten Endes dann doch nicht
  357.   in die offizielle Workbench aufgenommen, allerdings mit Billigung von
  358.   Commodore veröffentlicht (Quellen: Fish-Disk 637, Aminet,
  359.   `util/cli/finkelshelltools.lha'). Dieses Programm arbeitet auch unter
  360.   OS3.1 noch problemlos.
  361.   
  362.      Die Verwendung des Pipe-Kommandos ist einfach. Man übergibt die
  363.   auszuführenden Programme als Argumente an Pipe, getrennt durch das
  364.   Zeichen |, z.B.
  365.            1> Pipe List SYS: | More
  366.                oder
  367.            1> Pipe List: SYS: NOHEAD | Sort IN: OUT: | More
  368.   
  369.   Beachten Sie die Verwendung von `IN:' und `OUT:', die nötig sind, weil
  370.   das Sort-Kommando nicht von der Standardeingabe lesen und nicht auf die
  371.   Standardausgabe schreiben kann. Diese Devices werden durch das
  372.   Kommandos Pipe simuliert. Durch die Environment-Variable _PCHAR kann
  373.   man auch ein anderes Zeichen anstelle von | verwenden.
  374.   
  375.   2.3.3 Das Pipe-Kommando in der AmigaShell
  376.   -----------------------------------------
  377.   
  378.      Es gibt ein sehr nützliches, allerdings undokumentiertes Feature
  379.   der AmigaShell: Diese kennt das Pipe-Kommando! Ist die lokale Variable
  380.   _PCHAR gesetzt, dann kann man Pipes sogar ohne Eingabe des
  381.   Pipe-Kommandos benutzen. Die Shell erkennt das durch _PCHAR vorgegebene
  382.   Zeichen und ruft für Kommandozeilen, die es enthalten, automatisch
  383.   Pipe auf.
  384.   
  385.      Am besten wird das folgende Kommando in `s:Shell-Startup'
  386.   eingetragen:
  387.            1> Set _pchar "|"
  388.   
  389.   (1) Man kann die vorigen Beispiele dann so ausführen:
  390.            1> List SYS: | More
  391.                oder
  392.            1> List SYS: NOHEAD | Sort IN: OUT: | More
  393.   
  394.      Dies entspricht also völlig den Unix-Pipes.
  395.   
  396.      ---------- Footnotes ----------
  397.   
  398.      (1)  Die Anführungsstriche sind wesentlich! Wenn _PCHAR bereits
  399.   gesetzt ist, wird sonst angenommen, es handele sich bereits um einen
  400.   Aufruf von Pipe. Dies kann etwa dann geschehen, wenn aus einer Shell
  401.   eine neue gestartet wird.
  402.   
  403.   2.3.4 Die _mchar-Variable
  404.   -------------------------
  405.   
  406.      Die lokale Variable _mchar legt das Zeichen fest, das als
  407.   Kommandotrenner dient. Setzt man also
  408.            1> Set _mchar ";"
  409.      dann kann man in der Shell die Befehle hintereinanderfügen, durch
  410.   den Strichpunkt getrennt.
  411.   
  412.   2.3.5 Bekannte Probleme
  413.   -----------------------
  414.   
  415.   *F:*
  416.        Ich bekomme die Fehlermeldung
  417.                 PIPE: Unknown command
  418.   
  419.        wenn ich das Kommando `List SYS: | More' ausführe, obwohl `PIPE:'
  420.        mit `Mount' angemeldet ist. Was ist falsch?
  421.   
  422.   *A:*
  423.        Die Shell sucht nach dem Kommando `Pipe' in der Fehlermeldung,
  424.        nicht nach dem `PIPE:'-Device. Dieses Kommando ist also nicht im
  425.        Suchpfad (meist in `C:') installiert.
  426.   
  427.   *F:*
  428.        Ein Requester meldet
  429.                 Please insert volume PIPE: in any drive
  430.   
  431.        wenn ich eines der Kommandos aus den Beispielen ausführen will.
  432.   
  433.   *A:*
  434.        `PIPE:' ist nicht angemeldet. Dies kann mit `Mount PIPE:'
  435.        geschehen.
  436.   
  437.   *F:*
  438.        Wenn ich eines der Beispiele ausführe, dann eröffnet das
  439.        `More'-Kommando ein Fenster, aber dort erscheint nichts/ eine
  440.        Fehlermeldung erscheint/ein Filerequester erscheint.
  441.   
  442.   *A:*
  443.        Sie verwenden ein anderes More-Kommando als das aus der Workbench.
  444.        Verwenden Sie einen anderen Namen oder installieren Sie ein More,
  445.        das Pipes unterstützt, z.B. das More von Commodore, Less oder
  446.        Most.
  447.   
  448.   3 Programmierung
  449.   ****************
  450.   
  451.      In diesem Kapitel finden vermutlich nur Programmierer Interessantes.
  452.   
  453.   3.1 Was ist die beste Dokumentation für Programmierer?
  454.   ======================================================
  455.   
  456.      Die beste verfügbare Dokumentation sind sicherlich die RKM's (ROM
  457.   Kernel Manuals, die schwarzen) von Commodore. Sie werden von
  458.   Addison-Wesley veröffentlicht.
  459.        The Amiga ROM Kernel Manual:  Libraries, ISBN 0-201-56774-1
  460.        The Amiga ROM Kernel Manual:  Devices, ISBN 0-201-56775-X
  461.        The Amiga ROM Kernel Manual:  Includes and Autodocs, ISBN
  462.                                                             0-201-56773-3
  463.        The Amiga Hardware Manual, ISBN 0-201-56776-8
  464.        The Amiga User Interface Style Guide, ISBN 0-201-57757-7
  465.   
  466.   Vor allem die Libraries sind ein Muß. Weniger nützlich sind die
  467.   Includes und Autodocs: Sie sind auf Diskette als Online-Hilfe sicher
  468.   nützlicher.  Siehe Include-Dateien.
  469.   
  470.      AmigaDOS wird in diesen Büchern kaum behandelt. Die Autodocs geben
  471.   einige Informationen, aber um tiefer einzusteigen braucht man das
  472.        The AmigaDOS Manual, 3rd Edition, ISBN 0-553-35403-5
  473.   
  474.   ebenfalls von Commodore, das von Bantam Books herausgegeben wird.
  475.   
  476.      Eine gute Wahl ist auch
  477.        The Amiga Guru Book
  478.   
  479.   von Ralph Babel. Das Buch beginnt mit einem ca. 250-seitigen
  480.   allgemeinen Überblick über verschiedenste Aspekte der Programmierung
  481.   des Amiga. Für Anfänger dürften vor allem die Abschnitte über die
  482.   Amiga-Datentypen sowie die Amiga-Includes und die amiga.lib interessant
  483.   sein, aber auch Erfahrene finden hier mit Sicherheit noch Neues, was
  484.   zum Teil nicht einmal in den RKM's enthalten ist. Den größten Teil
  485.   des Buches nehmen aber 500 Seiten nur zu AmigaDOS ein. Dieser Teil ist
  486.   meines Erachtens der wichtigste, weil das AmigaDOS-Manual der
  487.   schlechteste Teil der offiziellen Dokumentation ist. Das Buch ist sehr
  488.   dicht geschrieben und deshalb weniger leicht lesbar als die RKM's, aber
  489.   ich empfehle es als Zusatz und vor allem anstelle des AmigaDOS-Manuals.
  490.   (Allerdings ist das Guru-Buch kein Ersatz für die Libraries & Devices,
  491.   die hier nicht behandelt werden.) Unglücklicherweise hat das Buch
  492.   keine ISBN-Nummer und ist deshalb nur bei den folgenden Adressen
  493.   erhältlich:
  494.   
  495.        Hirsch & Wolf OHG; Mittelstrasse 33; D-56564 Neuwied; Germany
  496.        Voice: +49 (2631) 8399-0; Fax: +49 (2631) 8399-31
  497.        E-Mail: <hhhirsch@carla.adsp.sub.org> (fax preferred)
  498.        (Eurocard/Mastercard/VISA)
  499.        
  500.        Periscope; Attn: Cody Lee; 1717 W Kirby Ave; Champaign, IL 61821, USA
  501.        Voice: +1 (217) 398 4237; Fax: +1 (217) 398 4238
  502.        E-Mail: <periscope@cei.com>
  503.        
  504.        Someware; 27 rue Gabriel Peri; 59186 Anor; France
  505.        Voice: +33 27596000; Fax: +33 27595206
  506.        E-Mail: <didierj@swad.adsp.sub.org>
  507.   
  508.      Für weitere Informationen empfehle ich auch die FAQ von Marc Atkins
  509.   über Bücher zum Thema Amiga, die alle 4 Wochen in
  510.   `comp.sys.amiga.misc' erscheint.
  511.   
  512.   3.2 Was ist CATS?
  513.   =================
  514.   
  515.      Dies ist eine Abteilung von Commodore West Chester, die früher
  516.   `Commodore Amiga Technical Support' hieß und später in `Commodore
  517.   Application and Technical Support' umbenannt wurde. Die Mitglieder
  518.   arbeiten unabhängig von der Entwicklungsabteilung, aber eng mit ihr
  519.   zusammen, und versuchen, Entwicklern außerhalb von Commodore beim
  520.   Erstellen guter Amiga-Anwendungen zu helfen, sei das eine Hard- oder
  521.   Software. Dazu hat CATS eine Menge an Informationen und Tools
  522.   gesammelt, auf Floppy, CD oder Papier. Ein großer Teil dieses
  523.   Materials ist auch der Allgemeinheit, d. h. für Nicht-Developer
  524.   zugänglich. Aber bitte CATS nicht mit einer Hotline verwechseln!
  525.   
  526.      Amerikaner können das Material von
  527.            CATS - Developer Applications
  528.            Commodore
  529.            1200 Wilson Drive
  530.            West Chester, PA. 19380
  531.   
  532.   bekommen, der Distributor für ganz Europa ist die
  533.            Fa. Hirsch & Wolf
  534.            Mittelstr. 33
  535.            56564 Neuwied
  536.            Tel. 02631/83990
  537.   
  538.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  539.   
  540.   3.3 Wo bekomme ich die Amiga-Include-Dateien?
  541.   =============================================
  542.   
  543.      Der einzige legale Weg, die Include-Dateien und die AutoDocs zu
  544.   bekommen (und Sie sollten sie bekommen, sie sind *sehr* nützlich!),
  545.   ist, Developer zu werden (siehe siehe Developer) oder das sogenannte
  546.   `NDU' (Native developers update kit, auch als `NDUK', `NDK' bekannt oder
  547.   `ADU' für Amiga Developer Update) bei CATS zu kaufen. Siehe CATS. Es
  548.   kostet etwa 50DM, was sicher ein fairer Preis ist. Dabei handelt es
  549.   sich um ein 5-Disketten-Set, das neben den aktuellen Includes und
  550.   AutoDocs auch Tools für Programmierer, z.B. Enforcer, Mungwall, Sushi
  551.   und die debug.libg (zum Debuggen) sowie anderes, z.B. CatComp (siehe
  552.   Lokalisierung) oder Report (für Bug-Reports oder Vorschläge an
  553.   Commodore) enthält. Die aktuelle Version ist 3.1 und für
  554.   Programmierer beinahe obligatorisch.
  555.   
  556.      Wem die Includes genügen, der kann diese über ein Update seines
  557.   Compilers (nur kommerzielle Compiler) oder von den Fish-CDs bekommen.
  558.   Siehe Fish-CD.
  559.   
  560.   3.4 Wie werde ich Developer?
  561.   ============================
  562.   
  563.      Um Developer zu werden, braucht man die `ADSP'-Antragsformulare
  564.   (Amiga developer support program). Um diese zu bekommen, sollte man
  565.   einen Brief an die lokale Commodore-Niederlassung schreiben und nach
  566.   diesen Papieren fragen, in denen das weitere erklärt wird. In
  567.   Deutschland ist die Adresse folgende:
  568.            Commodore
  569.            Lyoner Straße 38
  570.            60528 Frankfurt
  571.      Es gibt drei verschiedene Arten von Developern:
  572.   *Registered*
  573.        Hier bekommt man vor allem Zugang zum CBMNET (eine Art
  574.        Commodore-internes Usenet), über das man direkt mit anderen
  575.        Entwicklern auch von Commodore selber über seine Probleme
  576.        diskutieren kann. Die Jahresgebühr beträgt 150 DM, die einmalige
  577.        Aufnahmegebühr 50 DM.
  578.   
  579.   *Certified*
  580.        Dies ist die interessanteste Klasse: Man bekommt von der meisten
  581.        Systemsoftware die aktuellen Beta-Versionen (z. B. Kickstart und
  582.        Workbench) sowie die dazugehörigen Includes und AutoDocs.
  583.        Certifieds bekommen aber nicht jede Beta und in der Regel auch
  584.        keine Hardware-Beta. Man bezahlt 400 DM pro Jahr dafür und eine
  585.        einmalige Aufnahmegebühr von 100 DM.
  586.   
  587.   *Commercial*
  588.        Kommerzielle Entwickler bekommen im wesentlichen dieselben
  589.        Informationen wie die "Zertifizierten", allerdings kompletter,
  590.        sprich auch Beta-Hardware, und etwas früher. Dies hat auch seinen
  591.        Preis: 700DM pro Jahr plus einmalige Aufnahmegebühr von 100DM.
  592.   
  593.   Die Preise und die angebotenen Möglichkeiten können von Land zu Land
  594.   verschieden sein, auch gibt es meines Wissens nicht in allen Ländern
  595.   den "Registered". Ein guter Tip ist es, eine Gruppe zu bilden und damit
  596.   die Kosten zu reduzieren.
  597.   
  598.      Alle Entwickler müssen Non-disclosure agreements (`NDA')
  599.   unterzeichnen.  Diese besagen, daß sie über die erhaltenen
  600.   Informationen außerhalb von speziell dazu freigegebenen Orten oder
  601.   Kanälen nicht einmal zu anderen Entwicklern sprechen dürfen, so lange
  602.   sie nicht die explizite Erlaubnis dazu von Commodore haben.
  603.   
  604.   3.5 Was für Compiler (und Assembler) gibt es?
  605.   =============================================
  606.   
  607.      Es gibt viele Programmiersprachen auf dem Amiga, kommerzielle
  608.   Compiler ebenso wie frei kopierbare. Ich möchte nur diejenigen
  609.   aufzählen, die mir bekannt sind oder die ich aus einem anderem Grund
  610.   für erwähnenswert halte.
  611.   
  612.   *Assembler*
  613.        Alle C-Compiler beinhalten einen Assembler. Frei kopierbar und
  614.        zuverlässig sind A68K und PhxAss. (Aminet, Directory `dev/asm'
  615.        oder Fish-Disks 521 bzw. 906)
  616.   
  617.   *C*
  618.   *C++*
  619.        Frei kopierbare C-Compiler sind der `gcc' (der sein eigenes
  620.        Directory `dev/gcc' auf dem Aminet hat) und die Probeversion (mit
  621.        der man aber schon eine ganze Menge anfangen kann) von `Dice' (per
  622.        FTP von `ftp.uni-paderborn.de', Directory
  623.        `/news/comp.binaries.amiga/volume91/languages' oder auf Fish disk
  624.        491).  Der große Vorteil von gcc ist, daß man ihn auf der ganzen
  625.        Welt und auf nahezu jedem Computer findet. Ein weiterer Vorteil
  626.        ist, daß er sogar einen C++-Compiler enthält! Aber er ist
  627.        langsam und benötigt 4MB RAM oder mehr. Siehe Der GNU C Compiler.
  628.        Siehe Mail-Listen.
  629.   
  630.        Kommerzielle C-Compiler sind `Aztec-C', `Dice' und `SAS-C'.
  631.        `Aztec-C' wird jedoch leider nicht mehr weiterentwickelt.  Was die
  632.        kommerziellen Compiler auszeichnet, sind ihre hervorragenden
  633.        Source-Level-Debugger, die den anderen fehlen. SAS-C enthält
  634.        sogar einen Crosscompiler, der C++ nach C übersetzt und ebenfalls
  635.        den Source-Level-Debugger unterstützt. Dice ist der
  636.        preisgünstigste und schnellste Compiler, aber auch SAS-C ist recht
  637.        preiswert für Studenten oder als Update (sogar als Update auf
  638.        andere Compiler) erhältlich. Informationen über Dice:
  639.        info@oic.COM.
  640.   
  641.        Comeau C++ ist ebenfalls ein Crosscompiler, was an und für sich
  642.        kein Problem wäre. Aber Comeau C++ hat keinen integrierten
  643.        C-Compiler, man braucht also zusätzlich SAS-C, Aztec-C oder Dice.
  644.        Dafür ist er kompatibel zu AT&T cfront 3.0, unterstützt
  645.        Exceptions und läuft wie `gcc' auf vielen verschiedenen Systemen.
  646.        In Deutschland wird auch Maxxon C++ angeboten, über das ich
  647.        nichts sagen kann. Beide Compiler sind kommerziell. Comeau's
  648.        Adresse ist:
  649.                 Comeau computing
  650.                 91-34, 120th Street
  651.                 Richmond Hill, NY, 11418-3214
  652.                 USA
  653.             
  654.                 EMail: Greg Comeau, comeau@bix.com
  655.   
  656.   *Forth*
  657.        JForth soll eine exzellente Forth-Version sein. Unter anderem
  658.        enthält es objektorientierte Erweiterungen, ein volles
  659.        Amiga-Interface und einen Anwendungsgenerator. Es ist erhältlich
  660.        von:
  661.                 Delta Research
  662.                 P.O. Box 151051
  663.                 San Rafael, CA   94915-1051
  664.             
  665.                 Phone: (415) 453-4320
  666.                 EMail: Phil Burk, phil@ntg.com
  667.                        Mike Haas, haas@starnine.com
  668.   
  669.   *Fortran*
  670.        (Seufz! Es gibt immer noch Leute, die es brauchen :-<) Frei
  671.        kopierbar sind BCF (Fish disk 470) und f2c, der Fortran in
  672.        C-Quelltext umwandelt.  (Aminet, Directory `/dev/misc'). Ein
  673.        kommerzieller Compiler ist von ABSoft erhältlich. Allerdings sind
  674.        dies alles nur Fortran-77-Compiler, es gibt keine
  675.        Fortran-90-Compiler auf dem Amiga.
  676.   
  677.   *Lisp*
  678.        Frei kopierbare Lisp-Interpreter sind XLisp (Fish-Disk 181) und
  679.        OakLisp (Fish-Disks 519 und 520) und CLISP
  680.        (`/pub/lisp/clisp/binaries/amiga' at
  681.        `ma2s2.mathematik.uni-karlsruhe.de'). Auch Compiler gibt es: Gambit
  682.        (Fish-Disks 764 und 765) sowie Scheme-to-C (Fish-Disks 556-558).
  683.        Von Interesse ist vielleicht eine Mail-Liste: Senden Sie dazu eine
  684.        Mail mit dem Wort `Subscribe' an `amigalisp@contessa.phone.net'.
  685.   
  686.   *Prolog*
  687.        `/dev/lang/UNSWProlog.lha' und `dev/lang/sbp3_1e' auf dem Aminet
  688.        sowie `SBProlog' auf der Fish-Disk 141 und `SBProlog' auf der
  689.        Fish-Disk 145 sind frei kopierbare Prolog-Interpreter.
  690.   
  691.   *Modula-2*
  692.        M2Amiga wird in Europa und Benchmark Modula-2 in den USA
  693.        angeboten. Beide sollen sehr gut sein und sowohl über gute
  694.        Source-Level-Debugger als auch eine umfangreiche Bibliothek
  695.        verfügen. Besonders M2Amiga wird sehr gut unterstützt durch eine
  696.        deutsche Benutzergruppe (AMOK), die z.B. eine eigene PD-Serie
  697.        anbieten. Siehe Mail-Listen.
  698.   
  699.        M2Amiga bekommt man bei
  700.                 A+L AG
  701.                 Daderiz 61
  702.                 2540 Grenchen
  703.                 Schweiz
  704.             
  705.                 Tel.: +41/65/52 03-11
  706.                 Fax:              -79
  707.   
  708.        und Benchmark Modula-2 ist erhältlich von:
  709.                 Armadillo Computing
  710.                 5225 Marymount Drive
  711.                 Austin, Texas 78723
  712.                 USA
  713.             
  714.                 Phone/FAX: 512/926-0360.
  715.                 EMail: Jim Olinger, jolinger@bix.com
  716.   
  717.   *Oberon*
  718.   *Oberon-2*
  719.        Es gibt zwei Oberon-2-Compiler für den Amiga: AmigaOberon ist wie
  720.        M2Amiga von A+L und kommerziell. Der Compiler kommt mit einer
  721.        integrierten Entwicklungsumgebung (incl. freikonfigurierbarem
  722.        Editor) und umfangreicher Modulbibliothek. Library Linker zum
  723.        einfachen Erzeugen von AmigaOS Shared Libraries sowie Run-time
  724.        Source-Level-Debugger sind ebenfalls erhältlich.
  725.   
  726.        Oberon-A ist ein Freeware-Compiler, allerdings erst in einer
  727.        Beta-Version, insbesondere sind die Modulbibliotheken
  728.        unvollständig. (Quelle: Aminet, Directory `dev/obero'). Siehe
  729.        Mail-Listen.
  730.   
  731.        Für beide Compiler gibt es Unmengen von Modulen und Bsp.-Sourcen
  732.        auf AMOK-Disks.
  733.   
  734.   *Pascal*
  735.        Es gibt einen PD-Compiler namens PCQ (Aminet, Directory `dev/lang'
  736.        oder Fish-Disk 511), der allerdings kein voller Pascal-Compiler
  737.        ist und dem sehr wesentliche Dinge fehlen. P2C konvertiert Pascal
  738.        in C und ist auf der Fish-Disk 341 zu finden. (Aminet:
  739.        `/dev/misc/p2c120.lha') Ferner gibt es zwei kommerzielle Compiler
  740.        namens HiSoft-Pascal (von der gleichnamigen Firma) und KickPascal
  741.        von Maxxon. HiSoft und P2c behaupten, kompatibel zu Turbo-Pascal
  742.        5.0 zu sein. HiSoft hat außerdem einen guten
  743.        Source-Level-Debugger.
  744.   
  745.   3.6 Warum funktioniert keine Esc-Sequenz?
  746.   =========================================
  747.   
  748.      Viele Drucker kommen mit einem Handbuch, das erklärt, welche
  749.   Esc-Sequenzen welche Funktion auslösen. Aber wenn man diese Sequenzen
  750.   dann einmal ausprobiert, passieren oft merkwürdige Sachen, nämlich
  751.   entweder gar nichts oder etwas ganz anderes, als geplant war. Und das
  752.   hat auch einen Grund, nämlich die Amiga-Druckertreiber. Diese Treiber
  753.   sind so gebaut, daß sie nur einen bestimmten Satz `ANSI-Esc-Sequenzen'
  754.   verstehen, nicht die (verschiedenen) druckereigenen, von den
  755.   verschiedenen Druckerherstellern definierten. Der Sinn dabei ist, daß
  756.   jede Anwendung auf dem Amiga nur diesen einen Standardsatz an Sequenzen
  757.   verwendet und so nicht zu wissen braucht, welcher Drucker tatsächlich
  758.   angeschloßen ist. Der Druckertreiber übersetzt dann diese
  759.   Standardsequenzen in die druckereigenen. Eine Liste der verfügbaren
  760.   ANSI-Esc-Sequenzen findet sich im aktuellen Workbench-Handbuch (oder in
  761.   älteren AmigaDOS-Handbüchern). Wenn Du nun eine Steuersequenz an den
  762.   Drucker schicken willst, die es nicht als ANSI-Sequenz gibt, so hast Du
  763.   zwei Möglichkeiten, dies doch zu erreichen:
  764.     1. Umgeh den Druckertreiber (der erfolglos versuchen würde, die
  765.        Sequenz zu interpretieren oder zu übersetzen) und sende die
  766.        Ausgabe *nur* für die Länge dieser Sequenz an `PAR:' (bzw.
  767.        `SER:'). Dabei muß man die Druckerausgabekanäle umständlich oft
  768.        umschalten, und man muß wissen, wo der Drucker angeschlossen ist
  769.        (`PAR:' oder `SER:').
  770.   
  771.     2. Benutze eine spezielle ANSI-Sequenz, genau für diesen Fall
  772.        gedacht:
  773.                 `Esc[<n>"<x>'
  774.        wobei `<n>' die dezimal geschriebene Anzahl an Bytes in der Sequenz
  775.        `<x>' ist, die gerade die spezielle Drucker-Sequenz enthält. Diese
  776.        ANSI-Sequenz sagt dem Druckertreiber, daß er die nächsten `<n>'
  777.        Bytes nicht interpretieren oder übersetzen soll.
  778.           Aber beide Methoden haben einen grossen Nachteil, wenn sie in
  779.   einem Anwendungsprogramm verwendet werden: Man verliert die
  780.   Druckerunabhängigkeit! Solange man sich an die ANSI-Sequenzen hält,
  781.   kann man jeden Drucker der Welt ansteuern, solange es einen
  782.   Amiga-Druckertreiber für ihn gibt.  Wenn man anfängt, druckereigene
  783.   Sequenzen zu verwenden, ist das Programm an diesen einen Druckertyp
  784.   gebunden und mit keinem anderen benutzbar (oder man müßte einige
  785.   dutzend neue Druckertreiber für dieses Programm erstellen).
  786.   
  787.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  788.   
  789.   3.7 Kann ich AmigaBasic auf dem A1200 verwenden?
  790.   ================================================
  791.   
  792.      Letztens ging eine Kontroverse über AmigaBasic durch die Netze: Ich
  793.   sagte, auf dem A1200 läuft es einigermaßen problemlos, jemand anders
  794.   berichtete, daß es bei jedem kleinsten Fehler sofort komplett
  795.   abstürzt, was ich nicht nachvollziehen konnte.
  796.   
  797.      Jetzt kann ich es: Es liegt am Sound-Prefs-Editor. Wenn man in ihm
  798.   die Sound-Ausgabe ganz abschaltet, kann man mit AmigaBasic arbeiten.
  799.   Wenn hier ein Sound (z. B. Piepsen) angewählt ist, kollidiert das mit
  800.   dem Sound, den AmigaBasic offensichtlich zu Fuß und nicht ganz korrekt
  801.   selber erzeugen will, bumm.
  802.   
  803.      Abhilfe also:
  804.     1. Im Sound-Editor den Ton abstellen.
  805.   
  806.     2. Auf einem A4000 (oder einem A1200 mit Fast-RAM-Erweiterung (1))
  807.        muß man zusätzlich NoFastMem aktivieren.
  808.   
  809.     3. Möglichst SUBs vermeiden und stattdessen herkömmliche GOSUBs
  810.        benutzen, dann ist die Kompatibilität zu neueren Prozessoren
  811.        höher.
  812.   
  813.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.co
  814.   
  815.      ---------- Footnotes ----------
  816.   
  817.      (1)  Nur bei einem zusätzlichen Prozessor
  818.   
  819.   3.8 Wie lokalisiere ich mein Programm?
  820.   ======================================
  821.   
  822.      Nehmen wir an, wir wollen ein `HelloLocalWorld.c' schreiben. Das
  823.   letztendliche Programm sieht dann ungefähr so aus:
  824.   
  825.            #include "HelloLocalWorld_Cat.h"
  826.            #include <clib/exec_protos.h>
  827.        
  828.            struct Library *LocaleBase;
  829.        
  830.            void main(int argc, char *argv[])
  831.        
  832.            {
  833.                /* Öffne die locale.library. (Kein Abbruch, wenn sie nicht
  834.                   da ist, weil dann einfach die eingebauten Strings verwendet
  835.                   werden. Aus diesem Grund auch keine Verwendung des
  836.                   AutoOpening, auch wenn es der Compiler beherrscht.)
  837.                */
  838.                LocaleBase = OpenLibrary("locale.library", 38);
  839.                OpenHelloLocalWorldCatalogs(NULL, NULL);
  840.        
  841.                printf(GetString(MSG_Hello));
  842.        
  843.                CloseHelloLocalWorldCatalog();
  844.                if (LocaleBase) CloseLibrary(LocaleBase);
  845.            }
  846.   
  847.      Die Funktion GetString prüft, ob die gewünschten Kataloge
  848.   vorhanden sind und liefert einen Zeiger auf einen String, entweder den
  849.   eingebauten oder den Katalogstring. (In unserem Fall den deutschen
  850.   String.)
  851.   
  852.      Der Hauptunterschied zum gewohnten HelloWorld.c ist also (abgesehen
  853.   von der minimalen Initialisierung und dem Gegenstück am Programmende),
  854.   Strings durch einen Funktionsaufruf zu ersetzen. Man braucht also eine
  855.   Datei `HelloLocalWorld_Cat.c', die die Funktionen OpenHelloLocalWorld,
  856.   GetString, CloseHelloLocalWorld_Cat.h und die eingebauten Strings
  857.   enthält (dies könnte ein Array sein, das unter anderem
  858.                array[MSG_Hello] = "Hello, local world.\n";
  859.   
  860.   enthält) und ein Includefile `HelloLocalWorld_Cat.h', das die ID's wie
  861.   MSG_Hello definiert. Es ist nicht nötig zu wissen, wie diese Dateien
  862.   intern arbeiten, insbesondere benötigt man auch keine Kenntnis der
  863.   `locale.library'!
  864.   
  865.      Dazu gibt es verschiedene Kataloggeneratoren (im Folgenden KG),
  866.   nämlich `CatComp' (nur für Developer), `KitCat' (nur deutsche
  867.   Dokumentation, was hierzulande kein Problem ist), `MakeCat' (das ich
  868.   nicht kenne) und `FlexCat' (das ich empfehle, einerseits, weil es sehr
  869.   flexibel im erzeugten Source ist und z.B. Lokalisierung unter 2.0 sowie
  870.   beliebige Programmiersprachen unterstützt, selbst Amiga-E, Cluster,
  871.   Pascal, ... und andererseits, weil es von mir ist ;-) ), die diese
  872.   Dateien sowie die Kataloge erzeugen. (Der obige Quelltext könnte je
  873.   nach KG leicht unterschiedlich aussehen.) Siehe Aminet, directory
  874.   `dev/misc'.
  875.   
  876.      Wie funktionieren diese KGs? Zunächst erzeugt man eine sogenannte
  877.   `Katalogbeschreibung' (`Catalog description'), die so aussehen könnte:
  878.            ; Mit einem Semikolon beginnende Zeilen sind Kommentare
  879.            # language english
  880.            ; die Sprache der eingebauten Strings
  881.            # version 0
  882.            ; die Katalogversion (0 = beliebig)
  883.            MSG_Hello (1/15/30)
  884.            Hello, local world
  885.   
  886.   Jeder String wird durch zwei Zeilen wie die letzten beiden definiert:
  887.   MSG_Hello ist die String-ID, (1/15/30) gibt den Wert der ID sowie die
  888.   minimale und maximale Länge an. (Diese Argumente können auch
  889.   weggelassen werden, in welchem Fall einfach die nächste freie ID
  890.   verwendet wird.)
  891.   
  892.      Nun schreiben wir das Programm. Sobald es fertig ist, wird mit dem
  893.   KG eine sogenannte Katalogübersetzung (eine für jede andere Sprache
  894.   als die eingebaute) erzeugt, die so aussehen könnte:
  895.            ; Mit einem Semikolon beginnende Zeilen sind Kommentare
  896.            ## language deutsch
  897.            ; the catalog language
  898.            ## version $VER: Deutsch.catalog 1.0 (22.12.93)
  899.            ; the catalog files version string
  900.            MSG_Hello
  901.        
  902.            ; Hello, local world
  903.   
  904.   Beachten Sie die leere Zeile nach der String-ID! (Die Argumente von ##
  905.   language und ## version wären vielleicht leer.) Hier müssten jetzt
  906.   die deutschen Strings eingesetzt werden. Mit dem KG wird daraus dann
  907.   der eigentliche `Katalog' erzeugt. (Beachten Sie auch, daß hier die
  908.   Angaben über String-ID und Stringlänge fehlen: Sie werden aus der
  909.   Katalogbeschreibung übernommen.
  910.   
  911.      Wenn das Programm verändert wird (neue Strings, andere Längen) und
  912.   die Katalogbeschreibung sich damit ebenfalls ändert, dann kann der KG
  913.   analog benutzt werden, um auch die Katalogübersetzung und damit den
  914.   Katalog auf den neuesten Stand zu bringen.
  915.   
  916.   3.9 Wie erhält man einen Zeiger auf das Fenster einer Konsole?
  917.   ==============================================================
  918.   
  919.      Die folgende Funktion liefert den Window-Zeiger eines CON-Fensters.
  920.   Sie kann unter allen Versionen des Amiga-OS ausgeführt werden.
  921.   
  922.          struct Window *getConWindowPtr(BPTR fh)
  923.          {
  924.            struct Window *w;
  925.            struct FileHandle *cfh;
  926.            struct StandardPacket *sp;
  927.            struct InfoData *id;
  928.            struct MsgPort *mp;
  929.        
  930.            w = NULL;
  931.        
  932.            if ((cfh = BADDR(fh))->fh_Type != NULL) {
  933.              if (sp = AllocMem(sizeof (struct StandardPacket),
  934.                               MEMF_PUBLIC | MEMF_CLEAR)) {
  935.                if (id = AllocMem(sizeof (struct InfoData),
  936.                                 MEMF_PUBLIC | MEMF_CLEAR)) {
  937.                  if (mp = CreatePort(NULL, 0)) {
  938.                    sp->sp_Msg.mn_Node.ln_Name = (char *) &sp->sp_Pkt;
  939.                    sp->sp_Pkt.dp_Link         = &sp->sp_Msg;
  940.                    sp->sp_Pkt.dp_Port         = mp;
  941.                    sp->sp_Pkt.dp_Type         = ACTION_DISK_INFO;
  942.                    sp->sp_Pkt.dp_Arg1         = MKBADDR(id);
  943.        
  944.                    PutMsg(cfh->fh_Type, &sp->sp_Msg);
  945.                    (void) WaitPort(mp);
  946.                    (void) GetMsg(mp);
  947.        
  948.                    if (sp->sp_Pkt.dp_Res1)
  949.                      w = (struct Window *) id->id_VolumeNode;
  950.        
  951.                    DeletePort(mp);
  952.                  }
  953.                  FreeMem(id, sizeof (struct InfoData));
  954.                }
  955.                FreeMem(sp, sizeof (struct StandardPacket));
  956.              }
  957.            }
  958.        
  959.            return w;
  960.          }
  961.   
  962.      Anmerkungen:
  963.      * Auf ein CON-Fenster direkt zuzugreifen kann Konflikte mit Aktionen
  964.        des CON-Handlers hervorrufen. Seien Sie vorsichtig!
  965.   
  966.      * Um den Window-Zeiger einer CLI-Konsole zu erhalten, übergibt man
  967.        ein durch Open("*", MODE_OLDFILE) gewonnenes FileHandle an obige
  968.        Funktion.
  969.   
  970.      * Das Ergebnis der obigen Funktion kann sehr wohl NULL sein, etwa im
  971.        Falle eines AUX-Handlers oder falls ein AUTO-CON-Handler sein
  972.        Fenster nicht öffnen kann.
  973.   
  974.      * Schickt man ein ACTION_DISK_INFO-Paket an einen AUTO-CON-Handler
  975.        (2.0+), so verliert dessen Fenster seine speziellen
  976.        AUTO-Eigenschaften (es kann also nicht mehr durch das Betätigen
  977.        des Close-Gadgets geschlossen werden), weil der in id_VolumeNode
  978.        gelieferte Window-Zeiger gültig bleiben muß.
  979.   
  980.      * Alles in allem: Verwenden Sie diese Funktion nicht. :-)
  981.   
  982.      Weitere Informationen finden Sie auf den Seiten 273, 276, 435, 463,
  983.   485 und 629 im "Amiga Guru Book" (siehe Dokumentation).
  984.   
  985.      Ralph Babel, rbabel@babylon.pfm-mainz.de
  986.   
  987.   3.10 Was sind Pragmas?
  988.   ======================
  989.   
  990.      Pragmas sind spezielle Anweisungen an den C-Compiler.  Zwei Probleme
  991.   entstehen bei der Verwendung von Pragmas:
  992.     1. Pragmas sind hochgradig compilerspezifisch. Nicht einmal die
  993.        Amiga-Compiler haben dieselben Pragmas, selbst wenn damit das
  994.        gleiche bewirkt wird.
  995.   
  996.     2. Man kann sich nicht darauf verlassen, daß ein Compiler Pragmas
  997.        ignoriert, die er nicht versteht. Dies gilt selbst dann, wenn man
  998.        einen Ausdruck wie den folgenden verwendet:
  999.                 #ifndef MY_COMPILER
  1000.                 #pragma DoAnything
  1001.                 #endif
  1002.   
  1003.   Das letztere Problem läßt sich umgehen, indem man Pragmas wie folgt
  1004.   in eigene Include-Files setzt. (Das gleiche gilt übrigens auch für
  1005.   Präprozessor-Kommandos wie #asm (Aztec-C) oder #extern (C++).)
  1006.            #ifndef MY_COMPUTER
  1007.            #include <mypragmas.h>
  1008.            #endif
  1009.   
  1010.      Aber was machen Pragmas auf dem Amiga? Meistens werden sie verwendet,
  1011.   um dem Compiler mitzuteilen, wie gewisse Library-Funktionen aufgerufen
  1012.   werden. (Tatsächlich wird fast immer diese Verwendung gemeint, wenn
  1013.   Amiga-Besitzer über Pragmas sprechen.) Gewöhnliche C-Funktionen
  1014.   erwarten ihre Argumente auf dem Stack, Library-Funktionen dagegen in
  1015.   bestimmten Registern. Ferner erwarten sie den `Library-Base-Pointer' in
  1016.   Register a6.  Betrachten wir eine Pragma-Anweisung von Aztec-C:
  1017.            #pragma amicall(SysBase,0xd2,FreeMem(a1,d0))
  1018.   
  1019.   Dies weist den Compiler an, das erste Argument in Register a1 und das
  1020.   zweite in d0 zu laden. Ferner wird der Inhalt der Variablen SysBase in
  1021.   Register a6 geladen. Maxon-Pragmas sehen genauso aus, Dice- und
  1022.   SAS-Pragmas sind allerdings etwas komplizierter:
  1023.            #pragma libcall SysBase FreeMem d2 0902
  1024.   
  1025.   Hier ist d2 (wie 0xd2 oben) der `Library-Vektor-Offset' (siehe
  1026.   nächstes Beispiel). Die letzte Ziffer ist die Zahl der Argumente, die
  1027.   davorstehende 0 ein Code für das Register mit dem Ergebnis und die
  1028.   davor stehenden Ziffern sind Codes für die Register mit den Argumenten
  1029.   in verkehrter Reihenfolge. (Die Codes bedeuten 0=d0, 1=d1, .., 8=a0,
  1030.   9=a1, a=a2, ..)
  1031.   
  1032.      Ein Kommando wie `FreeMem(fib,sizeof(*fib);' würde ein Compiler nun
  1033.   in folgenden Code übersetzen:
  1034.            move.l  _fib,a1
  1035.            move.l  260,d1        ; sizeof(struct FileInfoBlock)
  1036.            move.l  _SysBase,a6
  1037.            jsr     -0xd2(a6)       ; 0xd2 = _LVOFreeMem
  1038.   
  1039.   FreeMem in dieser Art aufzurufen ist kürzer und schneller als
  1040.   zunächst die Argumente auf den Stack zu legen und dann eine Funktion
  1041.   _FreeMem aufzurufen, die letzten Endes doch nur dasselbe tun und die
  1042.   Argumente vom Stack in dieselben Register laden würde.
  1043.   
  1044.      Das Portierungsproblem der Pragmas umgeht man, indem man sie
  1045.   folgendermaßen in den eigenen Quelltext einbindet:
  1046.            /*    Lade den Funktionsprototyp. Dieser ist nicht vom    */
  1047.            /*    verwendeten Compiler abhängig.                */
  1048.            #include <clib/exec_protos.h>
  1049.        
  1050.            /*    Pragmas sind vom Compiler abhängig, aber wenigstens    */
  1051.            /*    die Namen der Dateien mit Pragmas sind relativ        */
  1052.            /*    einheitlich.                        */
  1053.            #ifdef AZTEC_C
  1054.            #include <pragmas/exec_lib.h>
  1055.            #endif
  1056.            #if defined(__SASC) || defined(_DCC) || defined(__MAXON__)
  1057.            #include <pragmas/exec_pragmas.h>
  1058.            #endif
  1059.            #ifdef __GNUC__
  1060.            #include <inline/exec_lib.h>
  1061.            #endif
  1062.   
  1063.   Das obige Beispiel kann problemlos mit allen angegebenen Compilern
  1064.   verwendet werden und produziert optimalen Code.
  1065.   
  1066.      Eine abschließende Frage bleibt allerdings: Wie bekommt man die
  1067.   Pragmas?  Die meisten Compiler haben bereits fertige Pragmas im
  1068.   Lieferumfang.  Allerdings hilft das nicht, wenn man z.B. eine neue
  1069.   Library benutzen möchte oder nur die Pragmas einer veralteten Version
  1070.   hat. In diesem Fall kann man die Pragmas selbst aus den sogenannten
  1071.   `FD'-Files erzeugen.  Dazu haben die meisten Compiler ein Utility
  1072.   namens `fd2pragma'.  (Das NDU hat z.B. ein Directory namens FD, in dem
  1073.   die FD-Files aller Libraries und Devices des OS enthalten sind. siehe
  1074.   Include-Dateien) Es gibt auch ein frei kopierbares fd2pragma, das
  1075.   Pragmas für Aztec, Dice, SAS und Maxon sowie LVO-Files für den
  1076.   Aztec-Assembler und eventuelle Tag-Versionen produziert. (Aminet,
  1077.   `dev/misc/fd2pragma2_0.lha' oder auf den Fish-CDs)
  1078.   
  1079.      Für Pragmas unter dem gcc siehe Inline-Dateien.
  1080.   
  1081.   3.11 Mein Compiler/Linker vermißt Symbole.
  1082.   ==========================================
  1083.   
  1084.      Zunächst sollte man sich versichern, daß die Funktion tatsächlich
  1085.   fehlt: Z.B. Floating-Point-Funktionen befinden sich in einer speziellen
  1086.   Link-Library, die erst mit der Option `-lm' eingebunden wird.  Ferner
  1087.   kann es eine fehlende Variable sein: Wenn man z.B. ohne es zu bemerken
  1088.   eine Intuition-Funktion benutzt, dann wird der Linker über das Fehlen
  1089.   eines Symbols `IntuitionBase' klagen. In diesem Fall muß man also
  1090.   lediglich das Folgende irgendwo im globalen Teil seines Quelltextes
  1091.   einbauen:
  1092.            struct Library *IntuitionBase;
  1093.   
  1094.   (Und vergessen Sie nicht, die Library mit OpenLibrary() zu eröffnen und
  1095.   mit CloseLibrary() zu schließen!) :-)
  1096.   
  1097.      Allerdings könnte die Funktion natürlich tatsächlich fehlen. Wenn
  1098.   man zum Beispiel nur die Version 2.0 der amiga.lib hat, dann fehlen
  1099.   etwa die Locale-Funktionen oder die Memory-Pool-Funktionen, obwohl sie
  1100.   prinzipiell verwendbar sind. (1) Die einfachste (und beste) Lösung
  1101.   ist, das sogenannte NDU zu kaufen.  Siehe Include-Dateien. Wer nicht
  1102.   solange warten möchte, für den ist die Frage, welche Art von Funktion
  1103.   in seiner Link-Library fehlt:
  1104.      * Einfache Amiga-Library-Funktionen (z.B. `exec/AllocPooled' oder
  1105.        `locale/OpenCatalogA') kann man mit Pragmas aufrufen und braucht
  1106.        dann lediglich Informationen über die Aufrufkonventionen
  1107.        (Library-Base, Library-Vektor-Offset und Argumentregister)
  1108.   
  1109.      * Tag-Funktionen sind meistens einfach Zwischenfunktionen, die ihre
  1110.        Argumente auf dem Stack erwarten und dann die eigentliche
  1111.        Library-Funktion aufrufen. Wenn man z.B. die Funktion
  1112.        `dos/AllocDosObject', die eine Konstante und einen Zeiger auf ein
  1113.        Array als Argumente erwartet, nach der obigen Methode konstruiert
  1114.        hat, dann hat man damit auch ihre Stack-Variante! Dazu erzeugt man
  1115.        einfach die folgende Funktion:
  1116.                 #include <clib/dos_protos.h>
  1117.                 #include <pragmas/dos_pragmas.h>    /*  Evtl. anderer Name    */
  1118.             
  1119.                 void *AllocDosObjectTags(ULONG objtype, Tag tag1, ...)
  1120.                 { return(AllocDosObject(objtype, (struct TagItem *) &tag1);
  1121.                 }
  1122.   
  1123.        Mit fd2pragma kann das auch automatisch geschehen. Siehe Pragmas.
  1124.   
  1125.      * Einige Funktionen bleiben aber noch übrig: Amiga.lib enthält
  1126.        nämlich auch Funktionen, die für sich selbst interessant sind,
  1127.        z.B. die BOOPSI-Funktionen (`DoMethod', `DoSuperMethod'), die
  1128.        Memory-Pool-Funktionen (`LibAllocPooled', `LibCreatePool', die
  1129.        Ersatz für entsprechende 3.0-Funktionen sind) oder `HookEntry',
  1130.        das sehr hilfreich bei der Programmierung von Hooks ist. Diese
  1131.        kann man nur durch entsprechende, disassemblierte und neu
  1132.        assemblierte oder compilierter Versionen ersetzen. Im
  1133.        AmigaFAQ-Archiv sind einige dieser Funktionen bereits enthalten.
  1134.   
  1135.      ---------- Footnotes ----------
  1136.   
  1137.      (1)  Dieses Problem  betrifft vor allem Besitzer von Aztec-C, das
  1138.   seither nicht weiter unterstützt wird und von Dice, der manchmal etwas
  1139.   unvollständig ist. Ich besitze beide ..
  1140.   
  1141.   3.12 Wie erfahre ich, was für Funktionen es gibt?
  1142.   =================================================
  1143.   
  1144.      Wenn Sie sich über den Namen einer für einen bestimmten Zweck
  1145.   geeigneten Funktion im Unklaren sind, dann gibt es folgende
  1146.   Möglichkeiten:
  1147.      * In den Autodocs der verschiedenen Libraries findet man am Anfang
  1148.        eine alphabetisch sortierte Tabelle aller Funktionen, die die
  1149.        betreffende Library bietet. Im Hauptteil findet man dann eine
  1150.        detaillierte Spezifikation aller Funktionen. Siehe Include-Dateien.
  1151.   
  1152.      * Die `.FD'-Dateien bieten eine sehr kompakte Übersicht über die
  1153.        Funktionen der diversen Libraries, sogar mit einer kurzen Angabe
  1154.        der Funktionsargumente. Wenn man schon grob weiß, wonach man
  1155.        sucht (z.B. nur die grobe Angabe der Argumente benötigt), dann
  1156.        findet man hier alle gewünschten Informationen. Siehe Pragmas.
  1157.   
  1158.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  1159.   
  1160.   3.13 Der GNU C Compiler: Allgemeine Informationen und Installation
  1161.   ==================================================================
  1162.   
  1163.      Dieser Abschnitt enthält Informationen über den Amiga-Port des GNU
  1164.   C Compilers generell und die Installation insbesondere.
  1165.   
  1166.   3.13.1 Aktuelle Version
  1167.   -----------------------
  1168.   
  1169.      Die aktuelle gcc-Version (im Folgenden als <gcc-aktuell> bezeichnet)
  1170.   ist 2.5.8. Die Version 2.6 ist in Arbeit und wird unter anderem eine
  1171.   neue Version der beliebten ixemul.library (die Unix-Systemaufrufe auf
  1172.   dem Amiga emuliert) sowie eine absolut neue C-Library enthalten, die
  1173.   die ixemul.library nicht mehr benötigt.
  1174.   
  1175.   3.13.2 Hardwareanforderungen
  1176.   ----------------------------
  1177.   
  1178.      Jeder Amiga (vom A1000 bis zum A4000/40) ist prinzipiell in der
  1179.   Lage, die GNU-Utilities für AmigaDOS zu benutzen. Allerdings braucht
  1180.   man wenigstens 4MB RAM, um kleinere oder mittlere Projekte zu
  1181.   übersetzen, für größere (z.B. für gcc selbst) entsprechend mehr.
  1182.   Gigamem arbeitet mit gcc zusammen, es *könnte* also evtl.  auch mit
  1183.   weniger gehen. Dazu braucht man aber eine MMU.  Siehe 68EC0xx.
  1184.   
  1185.      Eine volle Installation mitsamt C++ und Objective-C, inline-Dateien
  1186.   und Commodore Includes (siehe Include-Dateien) benötigt ca. 20 MB
  1187.   Platz auf der Festplatte.
  1188.   
  1189.      Gcc arbeitet auch unter Kickstart 1.2/1.3, die volle Funktionalität
  1190.   ist aber erst ab Kickstart 2.x+ vorhanden. Eine schnelle CPU (z.B.
  1191.   68030@25MHz oder besser) ist ebenfalls sinnvoll.
  1192.   
  1193.   3.13.3 Wer hat es gemacht?
  1194.   --------------------------
  1195.   
  1196.      Gcc und damit zusammenhängende Software wurde von den folgenden
  1197.   Personen auf den Amiga portiert (siehe Hilfe):
  1198.            Gcc v2.2.2:   Markus Wild
  1199.            Gcc v2.3.3:   Markus Wild
  1200.            Gcc v2.4.5:   Philippe Brand, Lars Hecking, Fred Fish
  1201.            Gcc v2.5.0 und später: Philippe Brand, Fred Fish, Leonard Norrgard
  1202.        
  1203.            Ixemul.library:    Markus Wild, Leonard Norrgard, R. Luebbert
  1204.            Libnix:           Matthias Fleischer, Gunther Nikl
  1205.                Gerlib:            Gerhard Müller
  1206.   
  1207.   3.13.4 Wo finde ich die gcc-Quelltexte?
  1208.   ---------------------------------------
  1209.   
  1210.      Alle gcc-Quelltexte und alle Binärdateien findet man auf:
  1211.   
  1212.     1. Aminet (wuarchive.wustl.edu und Mirror wie ftp.luth.se) in
  1213.        /pub/aminet/dev/gcc (siehe FTP)
  1214.   
  1215.     2. Ramses The Amiga Flying BBS:
  1216.                 +33-1-60037015  HST Dual v32 terbo 4800-21600
  1217.                     +33-1-60037713  SupraFax v32bis    4800-14400
  1218.                     +33-1-60037716  Tornado v22bis     1200-2400
  1219.        in Topic `Development', Area `Gcc' (are 156).
  1220.   
  1221.      Den originalen GNU-Quelltext bekommt man
  1222.   
  1223.     1. von denselben FTP-Servern wie die Binaries
  1224.   
  1225.     2. gnu.prep.ai.mit.edu (18.71.0.38) in `/pub/gnu'
  1226.   
  1227.     3. Ramses The Amiga Flying BBS in Topic
  1228.        `AmigaUnix/Unix/Linux/NetBSD', Area `Gnu Source Code'
  1229.   
  1230.      Diese Archive sollten alles Nötige enthalten, mit Ausnahme der
  1231.   Quelltexte der ixemul.library. Diese erhält man ebenfalls auf dem
  1232.   Aminet, Directory `dev/gcc'. (Zur Zeit ist die Version 40 der
  1233.   ixemul.library in Arbeit. Die Quelltexte werden am gleichen Ort sein.)
  1234.   
  1235.      Durch Richard Stallman, Free Software Foundation, ist festgelegt:
  1236.   
  1237.      "The GPL says that any distribution of binaries must contain either
  1238.   the source code or a written offer to supply source code (see the GPL
  1239.   for details of what is required)."
  1240.   
  1241.      Übersetzt: Die GPL (GNU General Public License) legt fest, daß jede
  1242.   Distribution entweder den Quelltext oder das schriftliche (oder
  1243.   geschriebene?) Angebot, diese zu liefern, enthalten muß. (Näheres
  1244.   siehe in der GPL.)
  1245.   
  1246.   3.13.5 Inline-Dateien
  1247.   ---------------------
  1248.   
  1249.      Die Inline-Dateien für den gcc kann man aus den originalen
  1250.   FD-Dateien von Commodore wie folgt erzeugen (Siehe Include-Dateien,
  1251.   siehe Pragmas):
  1252.   
  1253.        CLI> Assign INCLUDE: GCC:os-include
  1254.        CLI> Assign FD: INCLUDE:fd
  1255.        CLI> Makedir INCLUDE:inline
  1256.        CLI> cd USR:bin/geninline
  1257.        CLI> gen31
  1258.   
  1259.      Dies sollte alle Inline-Dateien in `GCC:os-include/inline' erzeugen.
  1260.   Falls man die 2.0- bzw. 3.0-Includes besitzt, sollte man gen20 bzw.
  1261.   gen30 benutzen. Inline-Dateien für OS3.1 (rev 40.13) sind in
  1262.   <gcc-aktuell> enthalten. Siehe Aktuelle Version.  (1)
  1263.   
  1264.      Auch mit dem Programm fd2inline kann man Inline-Dateien erzeugen:
  1265.   
  1266.        CLI> fd2inline <fd_file> <proto_file>
  1267.   
  1268.      ---------- Footnotes ----------
  1269.   
  1270.      (1)  Perl Skripte haben Schwierigkeiten, die Include-Dateien von
  1271.   AmigaDOS korrekt zu behandeln. Hier wäre etwas freiwillige Arbeit
  1272.   nötig ...
  1273.   
  1274.   3.13.6 Wie konvertiere ich die Amiga-Libraries für den gcc?
  1275.   -----------------------------------------------------------
  1276.   
  1277.      Linklibraries im Amigastil wie amiga.lib können von gcc nicht ohne
  1278.   weiteres verwendet werden. Man muß sie zunächst mit hunk2gcc, einem
  1279.   Programm von Markus Wild, übersetzen.
  1280.   
  1281.      Dazu braucht man zunächst eine aktuelle Kopie der amiga.lib (aus
  1282.   dem NDU, siehe Include-Dateien). Nachdem man sich ein Directory für
  1283.   die konvertierten Dateien erstellt hat, wechselt man mit cd in dieses
  1284.   Directory und gibt das Folgende ein:
  1285.            hunk2gcc amiga.lib [..further libs if you like..]
  1286.   
  1287.   Dies erzeugt ein Objektfile wie a.out für jedes einzelne Modul, das
  1288.   die Library enthält. Diese Module muß man anschließend in einer
  1289.   gcc-Library zusammenfassen:
  1290.            ar qc libamiga.a obj.*
  1291.            ranlib libamiga.a
  1292.   
  1293.   Das Programm ranlib fügt eine Symboltabelle in die Library ein.
  1294.   (Dadurch wird der Zugriff auf die Library sehr viel schneller.)
  1295.   
  1296.      Solange man keine reinen AmigaDOS-Funktionen verwendet, kann man
  1297.   auch eine Pseudo-Library erzeugen:
  1298.          cat "int dummy;" >dummy.c
  1299.          gcc -c dummy.c
  1300.          ar crv libamiga.a dummy.o
  1301.          mv libamiga.a gcc:lib
  1302.   
  1303.   3.13.7 Wie installiere ich den gcc?
  1304.   -----------------------------------
  1305.   
  1306.      Zunächst eine wichtige Bemerkung von Philippe Brand: Die meist
  1307.   gestellte Frage im Zusammenhang mit gcc-2.5.8 ist
  1308.   
  1309.      "Warum kann ich keine C++-Programme übersetzen?"
  1310.   
  1311.      Das liegt daran, daß ich einen Fehler bei der gcc-Distribution
  1312.   gemacht habe. Anstelle der 2.5.8-Versionen der C++- und
  1313.   Objective-C-Compiler habe ich die Version 2.5.7 verwendet.  Um dies zu
  1314.   beheben, gibt es zwei Möglichkeiten:
  1315.      * `lib/gcc-lib/amigados/2.5.7' umbenennen in
  1316.        `lib/gcc-lib/amigados/2.5.8'
  1317.   
  1318.      * Die Datei `dev/gcc/gcc258ud.lha' von Aminet laden. Diese enthält
  1319.        die korrekten Versionen.  Auf dem Aminet befindet sich auch die
  1320.   Datei `dev/gcc/gcc258ud1.lha', die einige korrigierte Libraries,
  1321.   Includes usw. enthält ...
  1322.   
  1323.      Und vergessen Sie nicht, die Datei `gcc258-readme.lha' ebenfalls von
  1324.   Aminet zu kopieren.
  1325.   
  1326.     1. Falls dies die erste gcc-Installation ist:
  1327.   
  1328.             CLI> cd Disk_mit_viel_freiem_Platz:
  1329.             CLI> lha x gcc258-x.lha
  1330.   
  1331.        Dabei steht x für die Zahlen 1 bis 4, evtl. auch 5 bis 6, falls
  1332.        Sie auch die Quelltexte installieren wollen.
  1333.   
  1334.        Von der Workbench aus wird nun das Programm GCC-Install gestartet.
  1335.        Dies ist das von Vielen gewünschte Installer-Skript für den gcc.
  1336.        Man muss also nur die Archivdateien entpacken, der Rest (Erzeugen
  1337.        von Umgebungsvariablen, Assigns, Kopieren der Shared-Libraries
  1338.        usw.) wird vom Installationsskript erledigt.
  1339.   
  1340.        Bei dieser Gelegenheit:
  1341.   
  1342.        Installer and Installer project icon (C) Copyright 1991-93
  1343.        Commodore-Amiga, Inc.  All Rights Reserved.  Reproduced and
  1344.        distributed under license from Commodore.
  1345.   
  1346.     2. Falls bereits eine ältere gcc-Version vorhanden ist: Löschen Sie
  1347.        einfach das alte gcc-Directory und führen Sie dann eine
  1348.        Neuinstallation durch. Es hat sich zu viel geändert. (Ein Backup
  1349.        vorher ist aber sicher keine schlechte Idee.)
  1350.   
  1351.      Bitte verwenden Sie *unbedingt* die ixemul.library in der Revision
  1352.   45 und nicht die Revision 47! Letztere ignoriert `ENV:'.
  1353.   
  1354.      Um gcc zu verwenden, brauchen Sie einen Stack von wenigstens 50000
  1355.   Bytes. Dies sollte für die meisten Anwendungen ausreichen.  Wollen Sie
  1356.   allerdings gcc selbst übersetzen, dann sollten Sie wenigstens 250000
  1357.   Bytes rechnen, für noch komplexere Dinge entsprechend mehr. Auch ar
  1358.   und ranlib brauchen einen großen Stack, wenigstens 200000 bis 300000
  1359.   Bytes, abhängig von der Größe der Library.
  1360.   
  1361.   3.13.8 Wichtige Informationsquellen
  1362.   -----------------------------------
  1363.   
  1364.      Der aktuelle Betreuer des Amiga-Ports von gcc ist:
  1365.            Philippe BRAND
  1366.            Fidonet: Ramses The Amiga Flying BBS 2:320/104.21
  1367.            Email:   phb@colombo.telesys-innov.fr (ONLY for personnal email).
  1368.            Ftp:     colombo.telesys-innov.fr:/pub/amigados-gnu
  1369.                     or /pub/incoming/uploads for uploads.
  1370.   
  1371.      Es gibt auch eine Mail-Liste in Finnland. Siehe Mail-Listen.
  1372.   Philippe Brand wird im Normalfall Fragen an diese Liste weiterleiten.
  1373.   
  1374.   4 Anwendungen
  1375.   *************
  1376.   
  1377.      Dieses Kapitel enthält Informationen zu verschiedenen
  1378.   Anwendungsbereichen.
  1379.   
  1380.   4.1 Text-Editoren
  1381.   =================
  1382.   
  1383.      Editoren sind Programme, die die Eingabe von unformatiertem Text
  1384.   ermöglichen.  Dies ist meist Text, der anschließend durch den
  1385.   Computer verarbeitet wird.  Programmierer benutzen etwa Editoren zur
  1386.   Eingabe der Quelltexte. Unter Unix beginnt Textverarbeitung meist mit
  1387.   einem Editor, dessen Ausgabe dann mit einer Textbearbeitungssprache
  1388.   (z.B. TeX) in gutaussehende Dokumente umgewandelt wird, da unter Unix
  1389.   Textverarbeitungsprogramme kaum verbreitet sind.
  1390.   
  1391.   *Kommerzielle Produkte*
  1392.        CygnusEd Professional und TurboText scheinen hier die Nase vorn zu
  1393.        haben.  Auf den Fish-Disks gibt es Dutzende von
  1394.        Shareware-Editoren. Eine Demoversion von TurboText ist auf
  1395.        Fish-Disk 445 und eine allerdings sehr alte von CygnusEd auf
  1396.        Fish-Disk 95. Die folgenden Editoren sind frei kopierbar.
  1397.   
  1398.   *Emacs*
  1399.        Gnu Emacs (Aminet, Directory `util/gnu') kommt von Unix und ist
  1400.        möglicherweise der König der Editoren. Er ist riesig (über 1MB),
  1401.        enthält eine unglaubliche Vielfalt von Funktionen (z.B. ein
  1402.        eigenes Fenstersystem und sogar ein Spiel :-) ) und beliebig
  1403.        erweiterbar: Emacs enthält einen eigenen Lisp-Interpreter!
  1404.        Andererseits ist er dadurch schwer erlernbar und so beliebig
  1405.        konfigurierbar, daß man mit dem Emacs eines anderen oft nicht
  1406.        mehr umgehen kann...
  1407.   
  1408.   *Vi*
  1409.        Einfacher, aber weniger konfigurierbar und nicht erweiterbar ist
  1410.        Vi.  Er ist vor allem bei Unix-Benutzern beliebt, weil es ihn auf
  1411.        *jeder* Unix-Maschine gibt. Die Wahl zwischen beiden ist eine
  1412.        Sache der persönlichen Vorliebe, kann einen allerdings fürs
  1413.        Leben kennzeichnen. Vim und Stevie (Fish-Disk 591 bzw. 256 und
  1414.        Aminet, Directory `util/edit') sind Vi-Versionen für den Amiga.
  1415.   
  1416.   *DME*
  1417.        Viele Amiga-Programmierer mögen DME. Er ist schnell und voll
  1418.        konfigurierbar: Menüs und Tastenbelegung sind beliebig. Er ist
  1419.        auch leichter erlernbar als Emacs und Vi. Es gibt drei
  1420.        verschiedene Versionen: AmokEd, DME und XDME.  Die Wahl ist
  1421.        Geschmacksache. (Oberon- und Modula-Programmierer bevorzugen
  1422.        häufig den AmokEd, weil der in Oberon geschrieben ist und die
  1423.        Fehlermeldungen von AmigaOberon direkt anzeigen kann,
  1424.        C-Programmierer dagegen stehen öfter auf letzterem.) Quellen:
  1425.        Aminet, Directory `util/edit', Fish-Disk 776 (XDME) und 749
  1426.        (AmokEd), AMOK 90.
  1427.   
  1428.   4.2 Was für Textverarbeitungsprogramme gibt es?
  1429.   ===============================================
  1430.   
  1431.      Textverarbeitungsprogramme benötigt man, um Briefe, Artikel oder
  1432.   ähnliches zu schreiben. Dies ist natürlich eine der wichtigsten
  1433.   Anwendungen eines Computers und eine für Sie geeignete Wahl bestimmt
  1434.   häufig, wie gut Sie mit Ihrem Computer überhaupt zurechtkommen.
  1435.   Textverarbeitungsprogramme besitzen teilweise Fähigkeiten, die sie
  1436.   sogar für DTP (siehe DTP) geeignet machen.  Für einfacher
  1437.   strukturierte Texte, etwa Quelltexte benützt man allerdings meist
  1438.   besser einen Editor. Siehe Editoren.
  1439.   
  1440.      Man unterscheidet Wysiwyg-Programme (What you see is what you get)
  1441.   und Seitenbearbeitungssprachen. Wysiwyg-Programme sollten schnell,
  1442.   komfortabel und einfach erlernbar sein. Die meisten Anwender ziehen sie
  1443.   vor. Die Alternative funktioniert ähnlich wie ein Compiler: Man
  1444.   verarbeitet Text-Dateien mit einem Programm, das das Layout übernimmt
  1445.   und eine weitere Datei erzeugt, die dann auf dem Bildschirm angezeigt
  1446.   oder auf einem Drucker ausgegeben werden kann. LaTeX ist eines dieser
  1447.   Programme. Siehe TeX.  Lout ist ein weiteres solches Programm,
  1448.   schneller und einfacher als LaTeX und mit vollständiger Dokumentation
  1449.   versehen, aber natürlich wesentlich weniger verbreitet. Lout erzeugt
  1450.   PostScript-Dateien. (Ob dies ein Vor- oder Nachteil ist, muß jeder
  1451.   selbst beurteilen. ;-) ) Siehe PostScript. Beide Programme sind frei
  1452.   kopierbar.
  1453.   
  1454.      Wysiwyg-Programme gibt es viele, allerdings alle kommerziell: Final
  1455.   Copy II, Wordworth, Word Perfect, AmiWrite, Beckertext II, Maxon Word
  1456.   und viele andere. Zur Wahl kann ich nur eines sagen: Lassen Sie sich
  1457.   viel Zeit bei der Auswahl.
  1458.   
  1459.   4.3 Desktop Publishing
  1460.   ======================
  1461.   
  1462.      Die Stärke dieser Programme ist die beliebige Anordnung und
  1463.   Gestaltung von Text- oder Grafikelementen. Bei Textverarbeitungen sind
  1464.   diese Fähigkeiten meist unterentwickelt. Umgekehrt fehlen
  1465.   DTP-Programmen häufig wichtige Funktionen zur Manipulation des Textes
  1466.   selbst. Allerdings kommen die besten Textverarbeitungen sicher nahe an
  1467.   den DTP Bereich (etwa Microsoft Word auf dem Mac oder PC) und umgekehrt
  1468.   ist Framemaker (UNIX, Mac, DOS) ein Beispiel eines DTP-Programms, das
  1469.   die wichtigsten Textverarbeitungsfunktionen enthält.  Auf dem Amiga
  1470.   gibt es leider weder in der einen noch in der anderen Richtung
  1471.   hervorragende Beispiele, wenn auch die wichtigsten Textverarbeitungen
  1472.   schon einiges leisten. Wenn man nicht gerade regelmäßig kleinere
  1473.   Zeitungen herausbringt, dann wird in den meisten Fällen ein
  1474.   Textverarbeitungsprogramm genügen. Und wer umgekehrt komplexere
  1475.   Funktionen wie mathematische Formeln, umfangreiche Indexe und
  1476.   Referenztabellen benötigt, der wird womöglich auf eine
  1477.   Seitenbearbeitungssprache angewiesen sein. Siehe Textverarbeitungen.
  1478.   
  1479.      Es gibt derzeit nur kommerzielle DTP-Systeme, vor allem ProPage und
  1480.   PageStream, die in den letzten Jahren wohl gegenseitig Hase und Igel
  1481.   miteinander gespielt haben. Derzeit scheint PageStream 3.0 vorne zu
  1482.   liegen.  Beide Programme liegen im Preis um 300$, in den USA gibt es
  1483.   wohl auch Studentenermäßigung (um 40%). Eine ausführlichere
  1484.   Beschreibung wäre willkommen.
  1485.   
  1486.   4.4 Was ist TeX und wo bekomme ich es?
  1487.   ======================================
  1488.   
  1489.      TeX ist eines der mächtigsten Textverarbeitungssysteme, die es gibt.
  1490.   Es kann praktisch beliebige mathematische Formeln ebenso darstellen wie
  1491.   komplexe Tabellen, Funktionen plotten (mit Hilfsprogrammen), Indexe oder
  1492.   Inhaltsverzeichnisse erzeugen und viele andere Dinge. Sein größter
  1493.   Vorteil ist, daß es frei kopierbar ist (TeX selbst, nicht unbedingt die
  1494.   Drucker- und Bildschirmtreiber) und sich dadurch auf der ganzen Welt und
  1495.   auf praktisch jeder Computerfamilie verbreitet hat. Sein größter
  1496.   Nachteil ist, daß es sehr unhandlich und schwer zu erlernen ist (Es
  1497.   arbeitet ähnlich wie ein Compiler) und keinerlei Wysiwyg-Fähigkeiten
  1498.   hat.  Aber viele Leute mögen es. (Dieser Text ist übrigens mit TeX
  1499.   erstellt worden. 8-) ) Siehe Textverarbeitungen.
  1500.   
  1501.      Es gibt im wesentlichen zwei Implementationen auf dem Amiga.
  1502.   Amiga-TeX von Thomas Rockicki und Radical Eye Software ist kommerziell
  1503.   und kostet etwa 200-300$. Es soll wirklich exzellent sein und seine
  1504.   Besitzer schwören darauf.
  1505.   
  1506.      Ich persönlich empfehle PasTeX, eine frei kopierbare Version. Es
  1507.   gibt immer wieder Leute, die über Installationsprobleme klagen
  1508.   (besonders, was das Laden und die automatische Erzeugung von Fonts
  1509.   angeht), aber ich kenne niemanden, der unzufrieden ist, nachdem es erst
  1510.   einmal installiert ist.  (Ein Freund mit TeX-Kenntnissen kann enorm
  1511.   hilfreich sein.) Wenn man sich an die Vorgaben des Installationsskripts
  1512.   hält, sollte es eigentlich keine Probleme geben. Wesentlich ist
  1513.   allerdings, daß man alles Nötige installiert und dazu braucht man:
  1514.      * 5 Disketten mit dem eigentlichen TeX-Compiler
  1515.   
  1516.      * 2 Disketten mit MetaFont
  1517.   
  1518.      * Nichts weiter Viele Leute fragen nach Fonts. Diese sind Teil des
  1519.   MetaFont-Paketes und werden automatisch erzeugt, wenn sie gebraucht
  1520.   werden, vorausgesetzt natürlich, daß TeX so wie in der Dokumentation
  1521.   beschrieben installiert ist. (Das Erzeugen der Fonts kann am Anfang
  1522.   natürlich dauern, bis die wichtigsten erst mal da sind.) Bitte
  1523.   beachten Sie, daß die PasTeX-Disketten mit Zoom gepackt sind. (siehe
  1524.   Endungen) PasTeX bekommt man per FTP z.B. bei `ftp.uni-passau.de' im
  1525.   Directory `/pub/amiga/tex/PasTeX1.3' und durch die Fish-CDs.
  1526.   
  1527.   4.5 Gibt es PostScript-Interpreter auf dem Amiga?
  1528.   =================================================
  1529.   
  1530.      PostScript ist eine Programmiersprache für das Ausdrucken von
  1531.   ganzen Seiten.  Apple hat PostScript populär gemacht, indem sie es in
  1532.   ihre Drucker eingebaut haben. Inzwischen gibt es viele Programme, die
  1533.   ihre Ausdrucke als PostScript-Quelltexte machen können. Bis vor kurzem
  1534.   brauchte man für PostScript einen relativ teuren Laserdrucker.
  1535.   Inzwischen gibt es aber auch Programme, die PostScript-Dateien auf
  1536.   anderen Druckern ausgeben können.
  1537.   
  1538.      Einer der Vorteile von PostScript ist, daß es unabhängig von der
  1539.   gewählten Auflösung ist. Man kann also die Vorteile der möglichen
  1540.   Auflösung auf dem Drucker ausnutzen und trotzdem dieselbe Datei auf
  1541.   dem Bildschirm mit seiner meist schlechteren Auflösung darstellen.
  1542.   
  1543.      Es gibt zwei frei kopierbare PostScript-Interpreter, Post und
  1544.   GhostScript.  Post ist eine shared-Library mit Programmen zur Ausgabe
  1545.   auf Drucker und Bildschirm. Man kann damit beispielsweise in AmigaTeX
  1546.   PostScript-Dateien als Bilder in TeX-Dateien einbauen. Siehe TeX.
  1547.   GhostScript besteht ebenfalls aus zwei Programmen, GhostScript selbst
  1548.   (der eigentliche Interpreter) und GhostView, der Benutzeroberfläche.
  1549.   Quellen: Aminet (Directories `text/print' und `text/dtp'), Fish Disk
  1550.   669.
  1551.   
  1552.   5 Grafik
  1553.   ********
  1554.   
  1555.      Grafik ist eine der Stärken des Amiga. Warum hat es hier so wenig
  1556.   Fragen und Antworten?
  1557.   
  1558.   5.1 Was heißt Chunky- und Planar-Display?
  1559.   =========================================
  1560.   
  1561.      Einfach gesagt stehen die Bezeichnungen `chunky' und `planar'
  1562.   (Kürzel für `bitplanar') für verschiedene Arten, graphische Daten im
  1563.   RAM des Computers zu speichern. Sie sind einfach zu verstehen, aber
  1564.   vielleicht etwas schwierig zu erklären.
  1565.   
  1566.      Die Anzeige eines Computers besteht aus einem Netz von Pixeln. Jedes
  1567.   Pixel kann man sich als eine Zahl denken, die für die Farbnummer des
  1568.   Pixels steht.  Hier ist zum Beispiel eine ganz einfache Anzeige mit 4
  1569.   Farben:
  1570.   
  1571.           00302132
  1572.   
  1573.      Der Amiga speichert dies im `bitplanaren' Modus, d.h. es werden
  1574.   verschiedene sogenannte Bitplanes verwendet, in denen zu jedem Pixel
  1575.   genau ein Bit gehört. Für eine Zahl zwischen 0 und 3 brauchen wir 2
  1576.   Bits, also auch zwei Bitplanes, die dann so aussehen:
  1577.   
  1578.           00100110    Dies ist Bitplane 0
  1579.           00101011    Dies ist Bitplane 1
  1580.           --------    Nun addieren wir sie, wobei wir die zweite mit 2
  1581.           00302132    multiplizieren
  1582.   
  1583.      Das ist also die gewünschte Grafik. Nun gäbe es aber natürlich
  1584.   auch eine andere Möglichkeit: Wir könnten die jeweils 2 Bits direkt
  1585.   hintereinander anordnen in sogenannten Chunks:
  1586.   
  1587.           00 00 11 00 01 10 11 01 = 00302132
  1588.   
  1589.      Dies ist das Prinzip des Chunky-Modus. Man kann im allgemeinen kaum
  1590.   sagen, daß eine dieser beiden Methoden besser oder schlechter ist.
  1591.   Allerdings haben natürlich beide ihre Vor- und Nachteile:
  1592.   
  1593.      Zunächst hat vielleicht jeder schon einmal gesehen, daß auf dem
  1594.   Amiga beim Scrollen von farbigem Text ein gewisses Flackern entsteht.
  1595.   Genauer gesagt ändern sich kurz die Farben. Was dabei passiert, ist,
  1596.   daß der Computer Bitplanes verschiebt, gleichzeitig aber dieselben
  1597.   Daten für die Anzeige verwendet werden. Wenn etwa gerade Bitplane 0
  1598.   verschoben wurde, aber Bitplane 1 noch nicht verschoben ist, so hätten
  1599.   wir kurzfristig im obigen Beispiel die folgende Anzeige:
  1600.           01001100    Dies ist Bitplane 0 (nach links verschoben)
  1601.           00101011    Dies ist Bitplane 1
  1602.           --------    Nun addieren wir sie wieder
  1603.           01203122
  1604.      Sobald die zweite Bitplane ebenfalls verschoben ist, stimmt wieder
  1605.   alles, aber kurzfristig entsteht dabei eben jenes Flackern. Bei einer
  1606.   Chunky-Anzeige dagegen wäre eben nur ein Teil des Bildschirms schon
  1607.   verschoben und ein anderer Teil noch nicht.
  1608.   
  1609.      Umgekehrt ist es im Chunky-Modus schlecht möglich, mit beliebiger
  1610.   Anzahl von Farben zu arbeiten: Da ein Byte 8 Bits hat, gehören etwa
  1611.   bei 4 Farben zu jedem Byte 4 Pixel. Man muß also stets erst berechnen
  1612.   an welcher Stelle des Bytes die Informationen zu einem bestimmten Pixel
  1613.   sitzen. Das ist aufwendig. Noch schlimmer wird die Sache bei 8 Farben:
  1614.   Da beginnen die Pixel noch nicht mal an der gleichen Stelle. Das ist
  1615.   sehr umständlich und rechenzeitaufwendig. In der Praxis gibt es daher
  1616.   Chunky-Anzeigen nur im 8-Bit-Modus (256 Farben) und im 24-Bit-Modus (16
  1617.   Millionen Farben). Es ist allerdings möglich, daß die Anwender da gar
  1618.   nicht so unglücklich darüber sind...
  1619.   
  1620.   5.2 Was ist Doublebuffering?
  1621.   ============================
  1622.   
  1623.      Bei animierter Grafik entsteht das Problem, daß gleichzeitig die
  1624.   Daten verändert und angezeigt werden. Dabei kommt es dann unweigerlich
  1625.   zu einem gewissen Flackern. (siehe Chunky vs. Planar)
  1626.   
  1627.      Die Lösung des Problems ist es, quasi zwei Bildschirme zu benutzen:
  1628.   Der eine wird immer angezeigt. Gleichzeitig wird auf dem anderen
  1629.   Bildschirm, der nicht angezeigt wird, das neue Bild gezeichnet. Es gibt
  1630.   kein Flackern, da die Grafik-Hardware nur auf das RAM des ersten
  1631.   Bildschirms zugreift und der Prozessor nur auf das des zweiten. Dann
  1632.   wird umgeschaltet und der zweite Bildschirm angezeigt. Auf dem ersten
  1633.   kann jetzt gezeichnet werden.
  1634.   
  1635.   5.3 Was für Monitore arbeiten am Amiga 1200 oder 4000?
  1636.   ======================================================
  1637.   
  1638.      Monitore kann man klassifizieren nach der horizontalen Frequenz, die
  1639.   sie für ihre Anzeige benötigen. Fernseher und Commodore's 1084
  1640.   benötigen z.B.  etwa 15 kHz, VGA und SVGA benötigen mindestens etwa 30
  1641.   kHz.  Multisync-Monitore können verschiedene Frequenzen darstellen.
  1642.   
  1643.      Man kann also jeden dieser Monitore am A1200 verwenden, *aber*:
  1644.   
  1645.      - Mit einem gewöhnlichen VGA/SVGA-Monitor kann man nur einige
  1646.        Anzeige-Modi (DblPal, DblNTSC und/oder Productivity, d.h.
  1647.        (320|640) x (256|512|1024) Pixel) verwenden. Dies ist großartig
  1648.        für die Workbench und die meisten ernsthaften Anwendungen, aber
  1649.        manche grafikorientierten Programme, vor allem Spiele laufen fast
  1650.        sicher nicht: Sie benutzen nämlich die Preferences nicht,
  1651.        übernehmen statt dessen einfach die Maschine und gehen von einem
  1652.        15 kHz Monitor aus. Ferner kann man das Bootmenü nicht verwenden:
  1653.        Das arbeitet nämlich ebenfalls nur mit 15 kHz. Schließlich haben
  1654.        VGA-Monitore keine Lautsprecher und die VGA-artigen Modi
  1655.        unterstützen keine Genlocks.
  1656.   
  1657.      - Das größte Problem eines 15 kHz-Monitors ist das ständige
  1658.        Flickern im Interlace-Modus. Ein kleiner Tip ist hier die
  1659.        Verwendung von NTSC anstelle von PAL. Dies erhöht die
  1660.        Refresh-Rate von 25 Hz auf 30 Hz, kostet allerdings einige
  1661.        darstellbare Zeilen. (Maximal möglich sind 482.) Die NTSC- und
  1662.        PAL-Modi sind aber nicht so schlecht, wie die Leute denken: Bei
  1663.        einem Monitor mit viel Phosphor (der also lange nachglüht) ist
  1664.        PAL-Laced einigermaßen akzeptabel und gibt eine Auflösung von
  1665.        1448x566 in SuperHiRes. Mehr ist auf keinem AGA-Amiga möglich.
  1666.   
  1667.      - Die beste Lösung sind die Multisync-Monitore, vorausgesetzt sie
  1668.        unterützen die Bereiche von 15-31 kHz Horizontal- und 50-72
  1669.        Vertikalfrequenz. Die neuen 1940- und 1942-Monitore von Commodore
  1670.        sind nicht schlecht, allerdings etwas umständlich zu handhaben:
  1671.        Bei jedem Umschalten des Anzeige-Modus muß man nämlich auch die
  1672.        horizontale/vertikale Größe und den Offset von Hand einstellen.
  1673.        (1) Geeignet sind z.B. auch der Mitsubishi EUM 1491 oder der EIZO
  1674.        9060S.
  1675.   
  1676.      Für einen VGA/SVGA- oder Multisync-Monitor braucht man ein Kabel,
  1677.   das etwa 30 DM kostet.
  1678.   
  1679.      ---------- Footnotes ----------
  1680.   
  1681.      (1)  Es gibt einen Patch, der dies auch ohne manuelle Eingriffe
  1682.   möglich macht. Siehe `os30/util/Monitor30Patch.lha' auf dem Aminet.
  1683.   
  1684.   6 Emulationen
  1685.   *************
  1686.   
  1687.      Was? Der Amiga ist nicht gut genug? Sie wollen noch eine andere
  1688.   Maschine?  Also gut, dann schauen Sie hier...
  1689.   
  1690.   6.1 Kann ich meinen Amiga unter Unix benutzen?
  1691.   ==============================================
  1692.   
  1693.      Es gibt derzeit drei Unix-Versionen für den Amiga. Alle benötigen
  1694.   mindestens einen 68030 wegen der MMU (siehe 68EC0xx),
  1695.   68040-Unterstützung ist erst in Arbeit. Alle scheinen Probleme mit
  1696.   manchen Harddisk-Controllern zu haben, man sollte sich deshalb anhand
  1697.   der Dokumentation informieren, ob sie auf der eigenen Maschine
  1698.   überhaupt laufen. Unix benötigt natürlich eine ungeheure Menge von
  1699.   Resourcen, 8Mb RAM und eine 150Mb-Partition für Unix dürften eher die
  1700.   Untergrenze sein.
  1701.   
  1702.     1. Commodore hat in der Vergangenheit ein System-V-Unix angeboten. Es
  1703.        enthielt TCP/IP, X11 und andere Software und hat eigentlich einen
  1704.        guten Eindruck gemacht, aber war teuer und wird vor allem nicht
  1705.        mehr weiterentwickelt. Commodore-Unix benötigt einen Streamer,
  1706.        denn es wird auf solchen Bändern ausgeliefert.
  1707.   
  1708.     2. Ein Linux-Port wird vorbereitet, allerdings gibt es derzeit nur den
  1709.        Kernel, das heißt die untersten Funktionen des Betriebssystems.
  1710.        Für Spezialisten könnte es interessant sein, kann aber wohl
  1711.        nicht empfohlen werden. Linux ist frei kopierbar. Quellen:
  1712.        `ftp.uni-paderborn.de', Directory `/pub/amiga/linux' oder
  1713.        `ftp.uni-erlangen.de', Directory `/pub/Linux/MIRROR.tsx-11/680x0'.
  1714.   
  1715.     3. NetBSD ist ebenfalls frei kopierbar. Wie Linux ist es noch nicht
  1716.        fertig, aber macht derzeit gute Fortschritte. Beispielsweise
  1717.        läuft wohl schon die meiste GNU-Software, vor allem Emacs und gcc.
  1718.        Es ist auf jeden Fall einen Blick wert. Quellen:
  1719.        `ftp.uni-paderborn.de', Directory `/pub/amiga/netbsd' oder
  1720.        `ftp.uni-erlangen.de', Directory
  1721.        `/pub/amiga/unix/NetBSD-regensburg'.
  1722.   
  1723.   6.2 Ist es möglich, den Amiga als X11-Terminal zu benutzen?
  1724.   ===========================================================
  1725.   
  1726.      Es gibt zwei Softwarepakete, die das möglich machen:
  1727.   
  1728.      GfxBase bietet ein kommerzielles Paket an. Es enthält verschiedene
  1729.   Window-Manager und Clients. Eine Demo-Version ist auf dem Aminet.
  1730.   (`gfx/x11/GfxBase-X11-Demo.lha')
  1731.   
  1732.      Frei kopierbar ist DaggeX. Allerdings ist dieses möglicherweise noch
  1733.   nicht ganz fertig, zumindest wird die Versionsnummer mit 0.91 angegeben.
  1734.   Zu finden ist es ebenfalls auf dem Aminet. (`gfx/x11/DaggeX-0.91.lha'
  1735.   und `gfx/x11/twm_930531.lha')
  1736.   
  1737.   7 Verschiedenes
  1738.   ***************
  1739.   
  1740.      Dieses Kapitel enthält Dinge, die nicht in die anderen passen.
  1741.   
  1742.   7.1 Gibt es eine Unix-Version von LhA?
  1743.   ======================================
  1744.   
  1745.      Ja. Siehe Endungen.
  1746.   
  1747.   7.2 Was sind Dateien, die mit ... enden?
  1748.   ========================================
  1749.   
  1750.      Die meisten dieser Endungen besagen, daß die betreffende Datei
  1751.   komprimiert (gepackt) ist oder ein Archiv aus mehreren Dateien ist oder
  1752.   beides. (Einige Programme können sogar ganze Disketten archivieren.)
  1753.   Übliche Endungen und die dazugehörigen Programme sind:
  1754.   *.sfx*
  1755.        Gepackte Archive, die in ein ausführbares Programm eingebunden
  1756.        sind; dieses wird einfach aufgerufen, um sich selbst zu entpacken.
  1757.        (sfx = self extract)
  1758.   
  1759.   *.lha*
  1760.   *.lzh*
  1761.        Gepackte Archive; empfohlen: LhA (`util/arc/LhA_e138.run' auf
  1762.        Aminet  oder Fish-Disk 715) oder Lx (`util/arc/lx100.lha' auf
  1763.        Aminet), es gibt auch eine Unix-Version
  1764.        (`misc/unix/lha-1.00.tar.Z')
  1765.   
  1766.   *.dms*
  1767.        Mit DMS komprimierte Disketten; Quellen: Aminet
  1768.        (`util/arc/dms111.sfx') oder Fish-Disk 406
  1769.   
  1770.   *.zom*
  1771.        Mit Zoom komprimierte Disketten; Quellen: Aminet
  1772.        (`util/arc/Zoom_5.4.lha' oder Fish-Disk 682); eine ältere Version
  1773.        findet man auf Fish-Disk 459, diese ist möglicherweise für das
  1774.        Entpacken von PasTeX nötig
  1775.   
  1776.   *.zoo*
  1777.        Komprimierte Archive; empfohlen: Zoo (`util/arc/zpp2-10.lzh' auf
  1778.        Aminet oder Fish-Disk 527)
  1779.   
  1780.   *.Z*
  1781.   *.z*
  1782.   *.gz*
  1783.        Komprimierte Dateien; empfohlen: Gzip (`util/pack/gzip124x.lha'
  1784.        auf dem Aminet). diese Dateien sind meist Unix-Dateien
  1785.   
  1786.   *.tar*
  1787.        Acrhive; empfohlen: tar (`util/arc/tar.lha' oder
  1788.        `util/arc/gtar10.lha' auf Aminet oder Fish-Disk 445), ebenfalls
  1789.        meist Unix-Dateien. Man findet häufig `.tar.Z' oder `.tar.gz'.
  1790.   
  1791.   *.arj*
  1792.        Komprimierte Archive; empfohlen unarj (`util/arc/unarj-0.5.lha' auf
  1793.        Aminet)
  1794.   
  1795.   *.zip*
  1796.        Komprimierte Archive; empfohlen UnZip (`util/arc/unzip-5.1.lha' auf
  1797.        Aminet). Dies sind meist MS-Dos-Archive.
  1798.   
  1799.   7.3 Gibt es ein Programm wie Stacker, um die Hard-Disk zu packen?
  1800.   =================================================================
  1801.   
  1802.      XFH ist eine gute Möglichkeit. Es arbeitet als Handler und benützt
  1803.   die XPK-Libraries, man kann also zwischen verschiedenen (und in Zukunft
  1804.   vielleicht noch weiteren) Komprimiermodi wählen. (`NUKE' ist eine gute
  1805.   Wahl. Der einzige Nachteil ist, daß die Größe von Dateien durch das
  1806.   verfügbare RAM beschränkt ist, unter 2MBytes RAM kann man Probleme
  1807.   bekommen.)
  1808.   
  1809.      Eine andere Möglichkeit ist EPU. Es ist Shareware und sollte
  1810.   dasselbe wie XFH bieten und außerdem ohne die Probleme mit der
  1811.   Dateigröße.
  1812.   
  1813.      Quellen: Aminet, Directory `util/pack' und Fish-Disk 754 (XFH) sowie
  1814.   858 (EPU).
  1815.   
  1816.   7.4 Wo bekomme ich Fish-Disk xxx?
  1817.   =================================
  1818.   
  1819.      Einige FTP-Server haben genügend Platz oder ein CD-Rom gemounted und
  1820.   haben alle Fish-Disks online verfügbar:
  1821.        ftp.isca.uiowa.edu      (USA, directory `/amiga/fx/fxxx')
  1822.        ftp.hawaii.edu          (USA, directory `/pub/amiga/fish')
  1823.        ftp.dfv.rwth-aachen.de  (Germany, directory `/pub/amiga/fish')
  1824.        ftp.funet.fi            (Finland, directory `/pub/amiga/fish')
  1825.      Beachten Sie bitte, daß die CD-Roms nicht immer gemounted sind.
  1826.   Siehe FTP.
  1827.   
  1828.      Eine andere Möglichkeit wäre, Ihren örtlichen PD-Händler zu
  1829.   fragen. :-)
  1830.   
  1831.   7.5 Wie füllt man die Tintenkartuschen der HPDeskjet-Drucker nach?
  1832.   ==================================================================
  1833.   
  1834.      Dies ist eigentlich keine Amiga-spezifische Frage, taucht aber in den
  1835.   Amiga-Newsgruppen so hartnäckig und regelmäßig auf, daß sie auch in
  1836.   dieser FAQ beantwortet wird.
  1837.   
  1838.      Die Drucker der Deskjet-Serie von HP besitzen einen in den Druckkopf
  1839.   integrierten Tinten-Vorratsbehälter. Wenn dieser Behälter leer ist,
  1840.   muß normalerweise der komplette Druckkopf ausgetauscht werden. Doch es
  1841.   geht auch billiger: Man kann den Tintenbehälter mit etwas Übung
  1842.   problemlos mehrfach nachfüllen.
  1843.   
  1844.      Man benötigt dazu eine Einwegspritze mit passender Nadel, etwas
  1845.   schwarze Füllfederhalter-Tinte (z.B. Pelikan 4001) sowie Isopropanol
  1846.   (a.k.a. Isopropylalkohol, erhältlich in jeder gutsortierten Apotheke).
  1847.   
  1848.      Als erstes gibt man in das neu gekaufte Tintenfäßchen einige
  1849.   Tropfen Isopropanol (ca. 0,5-1,0 ml pro 30 ml Tinte). Für eine
  1850.   Füllung des Druckkopfes zieht man dann etwa 10-15 ml der Tintenmischung
  1851.   in die Spritze, sticht mit der Nadel in die Öffnung im oberen
  1852.   (grünen) Teil des Druckkopfs und spritzt dann die Tinte langsam und
  1853.   vorsichtig in den Druckkopf.  Achten Sie darauf, daß Sie die Nadel
  1854.   nicht ganz "bis zum Anschlag" einstechen, während des Einspritzens
  1855.   muß die verdrängte Luft noch durch die Öffnung entweichen können,
  1856.   sonst tritt die Tinte eventuell durch die Düsen am unteren Ende des
  1857.   Druckkopfs aus.
  1858.   
  1859.      Die Dosierung des Isopropanols ist etwas kitzlig; zuviel fördert
  1860.   das Verlaufen der Tinte auf dem Papier und führt zu einem unsauberen
  1861.   Schriftbild, zuwenig führt eventuell zu verstopften Düsen am
  1862.   Druckkopf.
  1863.   
  1864.      Es gibt mittlerweile von verschiedenen Herstellern auch sogenannte
  1865.   Nachfüllkits, die passende Spritzen und fertig vorbereitete
  1866.   Tintenmischungen enthalten. Preislich liegen diese "Fertiglösungen"
  1867.   etwa in der Mitte zwischen der Füllertinte und einem neuen Druckkopf.
  1868.   
  1869.      Die neuen Spezialdruckköpfe mit doppeltem Volumen lassen sich
  1870.   übrigens angeblich nicht mehr nachfüllen - es wäre schön, wenn das
  1871.   jemand mal aus eigener Erfahrung bestätigen oder verneinen könnte...?
  1872.   
  1873.      Jürgen Weinelt, jow@rz.uni-wuerzburg.de
  1874.   
  1875.   7.6 Was ist MUI und wo bekomme ich es?
  1876.   ======================================
  1877.   
  1878.      MUI besteht aus einer Reihe von shared-Libraries, die eine sehr
  1879.   komfortable graphische Benutzeroberfläche (GUI = graphical user
  1880.   interface) ermöglichen. Die generelle Idee von MUI ist es, den
  1881.   Programmierer nur die logische Struktur des GUI festlegen zu lassen.
  1882.   Das konkrete Aussehen (Fonts, Fenstergroesse, Fenster auf Workbench,
  1883.   eigenem oder öffentlichem Screen usw.) wird durch den Benutzer
  1884.   bestimmt. Für den Programmierer ist MUI erheblich einfacher und
  1885.   umfangreicher als die `gadtools.library'. Andererseits sind mit MUI
  1886.   erzeugte GUI's langsamer als die mit der gadtools.library erzeugten,
  1887.   vor allem auf alten 68000er-Maschinen.
  1888.   
  1889.      MUI besteht aus zwei Archiven, eines für Programmierer und eines
  1890.   für normale Benutzer. Quellen: Aminet, `dev/misc'.
  1891.   
  1892.   8 Software-Quellen und andere Informationen?
  1893.   ********************************************
  1894.   
  1895.      Drei Fragen entstehen in diesem Zusammenhang: Was für Programme
  1896.   gibt es überhaupt, wo und wie bekomme ich sie und wie kann ich sie
  1897.   dann nach Hause bringen?
  1898.   
  1899.   8.1 Dateien und Datenbanken zur frei kopierbaren Software
  1900.   =========================================================
  1901.   
  1902.      Natürlich muß man wissen, wo man welche Software überhaupt findet.
  1903.   Viele wichtige Dinge sind bereits angegeben worden, wie ich hoffe.
  1904.   Weitere Informationen liefern:
  1905.   
  1906.   *AmigaSciUnixSchool*
  1907.        ist eine Software-Liste im Ascii-Format. Sie wird monatlich in den
  1908.        Newsgroups `comp.sys.amiga.applications', `comp.unix.amiga' und
  1909.        `news.answers' gepostet. (Aminet:
  1910.        `text/doc/AmigaSciUnixSchool-4.01').  Sie behandelt alles, was
  1911.        auch hier angegeben wurde und vieles mehr, z.B.  GNU-Software,
  1912.        Libraries (Link-Libraries und shared Libraries), Shells,
  1913.        Unix-Kommandos, wissenschaftliche Software und vieles mehr.
  1914.   
  1915.   *FishCon*
  1916.        sind die gesammelten Inhaltsverzeichnisse der Fish-Disketten im
  1917.        Ascii-Format.  (Aminet: `fish/doc/fishcon-???.lzh')
  1918.   
  1919.   *FishXref*
  1920.        ist ein Kreuzreferenzverzeichnis der FishCon-Dateien, ebenfalls im
  1921.        Ascii-Format (`fish/doc/fishxref-???.lzh' auf Aminet)
  1922.   
  1923.   *KingFisher*
  1924.        Eine Fish-Disk-Datenbank, getrennt in Programm (Fish-Disk 863 oder
  1925.        Aminet, `fish/doc/Kingfisher1_30.lha') und Datendatei
  1926.        `fish/doc/KFData850.lha', die die Suche nach Namen oder Kontext
  1927.        ermöglichen.
  1928.   
  1929.   8.2 Eine Sammlung von Testberichten
  1930.   ===================================
  1931.   
  1932.      `Comp.sys.amiga.reviews' ist eine moderierte Newsgruppe, in der
  1933.   ausschließlich Testberichte über Soft- und Hardware, Bücher und alles
  1934.   mögliche Andere, den Amiga Betreffendes veröffentlicht werden. Es ist
  1935.   immer eine gute Idee, hier nachzuschauen, wenn man an etwas Bestimmtem
  1936.   interessiert ist. Natürlich findet man in der eigentlichen Newsgruppe
  1937.   nur die jeweils neuesten Berichte, aber die älteren werden archiviert
  1938.   und sind per FTP erhältlich bei `math.uh.edu', Directory
  1939.   `/pub/Amiga/comp.sys.amiga.reviews' oder auf den Fish-CD's.
  1940.   
  1941.   8.3 Empfangen von Dateien von einem FTP-Server
  1942.   ==============================================
  1943.   
  1944.      Software zu laden ist einfach, wenn man Zugang zum Internet mit einem
  1945.   Programm namens FTP (File Transfer Program) hat. Unix-Computer haben
  1946.   häufig beides.
  1947.   
  1948.      FTP erlaubt Zugriffe auf andere Maschinen zum Speichern und/oder
  1949.   Laden von Dateien. Natürlich braucht man eine Zugangsberechtigung auf
  1950.   der anderen Maschine, aber viele Maschinen erlauben Zugang für jeden,
  1951.   wenn man sich als Benutzer `ftp' oder `anonymous' anmeldet und als
  1952.   Paßwort die eigene Mailadresse angibt. Für Amiga-Besitzer sind die
  1953.   wichtigsten FTP-Server die Aminet-Server, die sich gegenseitig Dateien
  1954.   übertragen und so im wesentlichen dieselben Dateien anbieten.
  1955.   Aminet-Server sind
  1956.        USA (MO)     ftp.wustl.edu           128.252.135.4
  1957.        USA (CA)     ftp.cdrom.com           192.153.46.2
  1958.        USA (TX)     ftp.etsu.edu            192.43.199.20
  1959.        Scandinavia  ftp.luth.se             130.240.18.2
  1960.        Germany      ftp.uni-kl.de           131.246.9.95
  1961.        Germany      ftp.uni-erlangen.de     131.188.1.43
  1962.        Germany      ftp.cs.tu-berlin.de     130.149.17.7
  1963.        Germany      ftp.uni-paderborn.de    131.234.2.32
  1964.        Germany      ftp.uni-oldenburg.de    134.106.40.9
  1965.        Germany      ftp.coli.uni-sb.de      134.96.68.11
  1966.        Switzerland  ftp.eunet.ch            146.228.10.16
  1967.        Switzerland  litamiga.epfl.ch        128.178.151.32
  1968.        UK           ftp.doc.ic.ac.uk        146.169.2.1
  1969.      Alle diese Server haben ein Directory `/pub/aminet', wo man massig
  1970.   Software findet. Bitte benutzen Sie einen Server in Ihrer Nähe! Einige
  1971.   andere wichtige Server sind
  1972.        ftp.funet.fi             (Finnland)
  1973.        ftp.isca.uiowa.edu       (USA)
  1974.        ftp.hawaii.edu           (USA)
  1975.        ftp.cso.uiuc.edu         (USA)
  1976.        ftp.dfv.rwth-aachen.de   (Deutschland)
  1977.      Grind, Aachen und Erlangen haben z.B. die komplette Fish-Disk-Serie
  1978.   parat!  Siehe Fish-Disk xxx.
  1979.   
  1980.      Um sich mit einem Server in Verbindung zu setzen (z.B.
  1981.   `ftp.uni-erlangen.de'), gibt man ein:
  1982.        ftp ftp.uni-erlangen.de
  1983.   
  1984.   Der Server antwortet mit der Aufforderung, den Benutzernamen einzugeben.
  1985.   Als Benutzernamen gibt man
  1986.        ftp
  1987.   
  1988.   ein. Nun wird man nach einem Paßwort gefragt. Hier sollte man seine
  1989.   Mailadresse (wenn man eine hat, sonst einfach ftp) eingeben.
  1990.   
  1991.      Nun ist man mit dem Server verbunden und kann eine Reihe von
  1992.   Kommandos ausführen. Die wichtigsten sind:
  1993.   *?*
  1994.        Gibt einen Hilfstext aus. Man kann auch *? Kommando* eingeben, um
  1995.        Hilfe zu einem bestimmten Kommando zu verlangen.
  1996.   
  1997.   *bin*
  1998.        Informiert FTP, daß man binäre Dateien transportieren will. Es
  1999.        ist immer eine gute Idee, dies als allererstes Kommando
  2000.        einzugeben! Ohne dieses Kommando können empfangene Dateien
  2001.        verändert und damit nutzlos sein.
  2002.   
  2003.   *get <Datei>*
  2004.        Lädt die angegebene Datei vom Server. Auf den meisten
  2005.        Unix-Maschinen kann man auch `get file.txt -' oder `get file.txt
  2006.        |more' eingeben, um sich die angegebene Datei auf den Bildschirm
  2007.        ausgeben zu lassen. (Achtung: Hier darf *kein* Blank zwischen |
  2008.        und dem Wort more sein!)
  2009.   
  2010.   *mget <pat>*
  2011.        Lädt die angegebenen Dateien. Im Unterschied zu get dürfen hier
  2012.        auch Unix-Wildcards (* oder ?) verwendet werden.
  2013.   
  2014.   *put <file>*
  2015.   *mput <pat>*
  2016.        Wie get und mget, aber es werden Dateien *zum* Server geschoben.
  2017.        Dies ist meist nur in speziellen Directories mit Namen wie
  2018.        `incoming' oder `new' erlaubt. Man kann dort Dateien plazieren,
  2019.        die man auf dem Aminet frei zugänglich machen will.
  2020.   
  2021.   *cd <dir>*
  2022.        Wie das übliche cd. Die Kommandos get, mget, put, mput, dir und
  2023.        ls beziehen sich auf das angegebene Directory.
  2024.   
  2025.   *dir [<dir>]*
  2026.   *ls [<dir>]*
  2027.        Wie `list' und `dir' auf dem Amiga. Beachten Sie allerdings, daß
  2028.        FTP-dir dem Amiga-list entspricht.
  2029.   
  2030.   *bye*
  2031.        Verläßt das FTP-Programm.
  2032.   
  2033.      Wenn man FTP das erste Mal benutzt hat, wird man feststellen, daß
  2034.   immer die gleichen Schritte ausgeführt werden:
  2035.     1. Benutzernamen eingeben (meist ftp)
  2036.   
  2037.     2. Paßwort eingeben (meist die Mailadresse)
  2038.   
  2039.     3. bin eingeben
  2040.   
  2041.     4. In ein bestimmtes Directory wechseln (meist `/pub/aminet/...')
  2042.           Dies kann man automatisieren. Dazu braucht man eine Datei namens
  2043.   `.netrc' in seinem Home-Directory. Diese muß unbedingt nur für Sie
  2044.   selbst lesbar sein, FTP akzeptiert sie sonst nicht! (Dies erreichen Sie
  2045.   unter Unix mit dem Kommando `chmod go-rwx .netrc'.) Die .netrc-Datei
  2046.   enthält für eine Reihe von Servern je einen Eintrag, die durch
  2047.   Leerzeilen getrennt werden. Ein typischer Eintrag sieht etwa so aus:
  2048.        machine ftp.uni-erlangen.de
  2049.        login ftp
  2050.        password <Ihre Mailaddresse> oder <ftp>
  2051.        macdef init
  2052.            bin
  2053.            cd pub/aminet
  2054.      Auf einigen Computern ist auch der Servername `default' erlaubt, der
  2055.   für alle anderen Maschinen außer den Angegebenen gilt.
  2056.   
  2057.   8.4 Empfangen von Dateien von einem Mail-Server
  2058.   ===============================================
  2059.   
  2060.      Eine andere Möglichkeit, Dateien zu empfangen, sind die
  2061.   Mail-Server. Dazu braucht man die Möglichkeit, an Internet-Adressen
  2062.   Mail zu verschicken und zu empfangen. Es funktioniert, indem man an den
  2063.   Server eine Mail schickt, in der man ihm sagt, was man haben möchte.
  2064.   Die Dateien werden dann ebenfalls als Mail geschickt, allerdings
  2065.   kodiert. Man braucht ein Programm namens `uudecode', um sie zu
  2066.   dekodieren.
  2067.   
  2068.      Die wichtigsten Mail-Server sind:
  2069.        ftpmail@decwrl.dec.com
  2070.        mailserver@nic.funet.fi
  2071.        ftp-mailer@ftp.informatik.tu-muenchen.de
  2072.        mrcserv@janus.mtroyal.ab.ca
  2073.        mail-server@ftp.cs.tu-berlin.de
  2074.        mail-server@rtfm.mit.edu
  2075.   
  2076.      Die an einen Server zu schickende Mail darf eine Reihe von Kommandos
  2077.   enthalten. Die wichtigsten sind:
  2078.   *Help*
  2079.        Veranlaßt den Server, einem einen Hilfstext zu mailen, in dem eine
  2080.        umfangreiche Anleitung enthalten ist.
  2081.   
  2082.   *Limit <Anzahl>*
  2083.        Gibt an, daß eine einzelne Mail höchstens <Anzahl> KByte lang
  2084.        sein darf.  Größere Dateien werden in mehrere kleinere
  2085.        aufgeteilt, die als separate Mails verschickt werden. Beachten
  2086.        Sie, daß einzelne Mails durch die Deodierung und den Mailheader
  2087.        auch etwas länger sein können!
  2088.   
  2089.   *Cwd <dir>*
  2090.        Wie der cd-Befehl; das angegebene Directory wird von den Kommandos
  2091.        send und dir benutzt.
  2092.   
  2093.   *Index*
  2094.        liefert eine Liste von Dateien und/oder Directories, die der
  2095.        Server anbietet.  Diese Liste kann *sehr* lang werden! (Berlin
  2096.        z.B. 1 MByte)
  2097.   
  2098.   *Index <item>*
  2099.        liefert eine Liste von Dateien, deren Namen <item> enthält.
  2100.   
  2101.   *Dir [<dir>]*
  2102.        liefert eine Liste von Dateien und Directories im angegebenen
  2103.        Directory
  2104.   
  2105.   *Send <file1> <file2> ... <fileN>*
  2106.        Liefert einem die angegebenen Dateien
  2107.   
  2108.   *Begin*
  2109.        Veranlaßt den Server, alle Zeilen oberhalb zu ignorieren.
  2110.   
  2111.   *End*
  2112.        Wie Begin, aber für die unten folgenden Zeilen. (Eine Signatur
  2113.        zum Beispiel!) Eine typische Mail an einen Mail-Server sieht also
  2114.   so aus:
  2115.        BEGIN
  2116.        CD /pub/aminet/util/arc
  2117.        SEND LhA_e138.run
  2118.        END
  2119.   
  2120.   8.5 Empfangen von Dateien von einer Mailbox
  2121.   ===========================================
  2122.   
  2123.      Man kann sich auch Daten von einem der vielen BBS (`Bulletin Board
  2124.   System') holen. Zumeist werden diese von privaten Anwendern betrieben,
  2125.   und deshalb gibt es fast überall eine oder mehrere BBS, die man zum
  2126.   Ortstarif erreichen kann.
  2127.   
  2128.      Mailboxen bieten zumeist Möglichkeiten zum Meinungs- und
  2129.   Datenaustausch unter allen Teilnehmern, sie stellen eine Reihe von
  2130.   Programmen zum `Saugen' zur Verfügung, und sie bieten oft noch einige
  2131.   andere Serviceleistungen an.
  2132.   
  2133.      Hier folgt eine Liste aller mir bekannten Amiga-Mailboxen.  Bitte
  2134.   schreibt mir die Namen und alle Telefonnummern der Euch bekannten
  2135.   Amiga-Mailboxen sowie (wo nötig) eine kleine Bemerkung, danke.
  2136.   
  2137.        Mailbox         Vorwahl   Nummer 1   Nummer 2   Nummer 3    Bemerkung
  2138.        ----------------------------------------------------------------------
  2139.        IMAGINE *       de-089    6892721
  2140.        AMIGA WORK *    de-089    6256183    6256159
  2141.        COMCOR *        de-089    7141035                           Computer Corner BBS
  2142.        FORTRESS        de-089    8915316    8110130
  2143.        Black Empire    de-089    472396     6885313
  2144.        AMIGA WORK II   de-089    6258696
  2145.        KUCKUCKSNEST    de-089    183000
  2146.        ERESSEA         de-089    6888534
  2147.        MAGIC           de-08121  45578
  2148.        NAMELESS        de-08285  1008       1630                   Burtenbach
  2149.        NATHAN          de-08191  65542                             Landsberg
  2150.        STAR BBS        de-08232  6077                              Schwabmünchen
  2151.        Shannara        de-09931  72923                             Plattling
  2152.   
  2153.      wobei `de' hier für Deutschland steht.
  2154.   
  2155.   8.6 Die Fish-PD-Serie
  2156.   =====================
  2157.   
  2158.      Eine sehr gute Quelle ist die Fish-PD-Serie. Man muß zwischen
  2159.   Disketten und CDs unterscheiden.
  2160.   
  2161.   8.6.1 Die Amiga-Library-Disks
  2162.   -----------------------------
  2163.   
  2164.      Fred Fish hat in der Mitte der Achtziger begonnen, frei kopierbare
  2165.   Software zu sammeln. Es gibt inzwischen 1000 Disketten und viele sehr
  2166.   gute Software darauf.  Viele Amiga-Händler bieten sie an und die
  2167.   meisten Amiga-Zeitschriften enthalten Anbieter, die sie für ca. 3 DM
  2168.   pro Diskette mit der Post versenden.  Die Disketten werden nicht mehr
  2169.   von Fred Fish selbst fortgeführt.  Es gibt einen Drittanbieter, der
  2170.   die neu erscheinende Software auf den Fresh-Fish-CDs weiterhin in
  2171.   Diskettenform anbietet.
  2172.   
  2173.      Es gibt Dinge, die auf den Fish-Disketten, nicht aber auf dem Aminet
  2174.   verfügbar sind. Trotzdem ist es möglich, sie per FTP zu bekommen.
  2175.   Siehe Fish-Disk xxx.
  2176.   
  2177.   8.6.2 Die Fresh-Fish-Serie
  2178.   --------------------------
  2179.   
  2180.      Fred Fish bietet weiterhin frei kopierbare Software an, allerdings
  2181.   jetzt auf CD. Es gibt zwei verschiedene Arten:
  2182.     1. Die monatlichen CDs sind drei Teile unterteilt:
  2183.          1. Neues Material, sowohl auf den Disketten erscheinende als
  2184.             auch dort nicht erscheinende Software. Auf der ersten CD sind
  2185.             das etwa 84Mb.
  2186.   
  2187.          2. Nützliche, bereits installierte Software, die direkt von der
  2188.             CD benutzt werden können und damit Platz auf der Festplatte
  2189.             sparen. (GNU Emacs, Gnu C, GNU C++, Amiga E, PasTeX,
  2190.             AmigaGuide, Installer, 2.0 und 3.0-Includes, verschiedene
  2191.             Archivierprogramme, das AmiCDROM Filesystem, GNU und
  2192.             BSD-Utilities...) Dieser Teil macht etwa 150Mb auf der ersten
  2193.             Disk aus.
  2194.   
  2195.          3. Älteres Material, das bereits früher erschienen ist.
  2196.             (Ungefähr 404Mb auf der ersten CD, entsprechend Fish-Disk
  2197.             600-910.)
  2198.   
  2199.     2. Die zweite Sorte enthält im wesentlichen mehr Software, dafür
  2200.        aber in gepacktem Format. (Diese CD's sind speziell für Mailboxen
  2201.        gedacht, die dadurch diese Software zum Downloaden anbieten.)
  2202.   
  2203.   Ich empfehle vor allem die erste Sorte. Sie kosten etwa 20$ plus 5$
  2204.   Versandkosten und können bei der folgenden Adresse bestellt werden:
  2205.        Amiga Library Services
  2206.        610 N. Alma School Road, Suite 18
  2207.        Chandler, AZ 85224-3687
  2208.        U.S.A.
  2209.        
  2210.        Phone/FAX: (602) 917-0917
  2211.      Als beste Zahlungsweise haben sich angeblich Kreditkarten bewährt.
  2212.   Allerdings bin ich überfragt, welche von Fred akzeptiert werden.
  2213.   
  2214.   8.7 Wie kann ich MS-Dos-Disketten lesen und schreiben?
  2215.   ======================================================
  2216.   
  2217.      Für Besitzer von Workbench 2.1 oder höher ist das kein Problem: Das
  2218.   Programm CrossDos ist da Teil der Workbench. Man muß lediglich `pc0:'
  2219.   mounten, indem man die Datei `Sys:Storage/DOSDrivers/pc0:' startet oder
  2220.   nach `Devs:Storage/DOSDrivers' verschiebt. MS-Dos-Disketten in `df0:'
  2221.   können nun ganz normal behandelt werden, indem man jeweils das Wort
  2222.   `df0:' durch `pc0:' ersetzt. Z.B. kann man das Directory mit `dir pc0:'
  2223.   anzeigen.
  2224.   
  2225.      Alle anderen benötigen ein Programm namens `msh' (Aminet, Directory
  2226.   `misc/emu' oder Fish-Disk 382). Nachdem man die Datei `devs:MountList'
  2227.   wie in der Dokumentation angegeben verändert hat, muß man lediglich
  2228.   im CLI das Kommando `mount msh:' eingeben und kann dann wie bei
  2229.   CrossDos damit verfahren, wobei man natürlich jeweils `msh:' anstelle
  2230.   von `pc0:' angeben muß.
  2231.   
  2232.   8.8 Wie transportiere ich sehr große Dateien
  2233.   ============================================
  2234.   
  2235.      Es gibt einige Archive, die zu groß sind, um auf eine Diskette
  2236.   passen.  (Das gcc-Archiv ist z.B. 3,5 MByte groß.) Um diese zu
  2237.   transportieren, benötigt man ein Programm, das sie in kleinere Teile
  2238.   aufteilt, die dann auf verschiedenen Dateien transportiert werden. Ich
  2239.   empfehle Martin Schlodders `Splitter'. (Aminet,
  2240.   `util/misc/splitter_121.lha') Das Archiv enthält Binaries für den
  2241.   Amiga und MS-DOS und der Quelltext sollte ohne Probleme auf jedem
  2242.   Unix-Rechner zu compilieren sein.
  2243.   
  2244.   8.9 Diskussionen über Mail
  2245.   ==========================
  2246.   
  2247.      Eine Mail-Liste ist ein Server, der es ermöglicht, sich mit anderen
  2248.   Leuten über ein bestimmtes Thema via Mail zu unterhalten. Der Server
  2249.   unterhält eine Liste interessierter Teilnehmer, die am Thema
  2250.   interessiert sind. Z.B. geht es bei der gcc-Mailliste um Bugs, neue
  2251.   Features und andere Probleme rund um den gcc. (siehe Compiler) Wenn ein
  2252.   Teilnehmer eine Mail an den Server schickt, dann wird sie vom Server an
  2253.   alle anderen Teilnehmer weitergeleitet.
  2254.   
  2255.      Man meldet sich als Teilnehmer an, indem man eine Mail an den Server
  2256.   schickt, die z.B. das Wort `Subscribe' enthält. Umgekehrt kann man
  2257.   sich auf ähnliche Weise abmelden, wenn man an der Mail-Liste nicht
  2258.   mehr länger interessiert ist.
  2259.   
  2260.      Unglücklicherweise erwarten die Server zum Teil eine recht
  2261.   unterschiedliche Syntax bei der Anmeldung. Allerdings unterstützen sie
  2262.   alle eine Hilfefunktion: Schickt man eine Mail mit dem Wort `Help' an
  2263.   den Server, so antwortet dieser mit einer ausführlichen Beschreibung.
  2264.   
  2265.      Einige interessante Mail-Listen sind:
  2266.        Topic           Server
  2267.        
  2268.        Amok            listserv@amokle.stgt.sub.org
  2269.        Dice            dice-request@hactar.hanse.de
  2270.        Gcc             listserv@lists.funet.fi
  2271.        Lisp            amigalisp@contessa.phone.net
  2272.        Mui             mui-request@taloa.unice.fr
  2273.        Oberon-A        oberon-a-request@wossname.apana.org.au
  2274.   
  2275.   8.10 Andere FAQ's
  2276.   =================
  2277.   
  2278.   *Amiga related books FAQ*
  2279.        Enthält eine Liste von Büchern zum Amiga, komplett mit
  2280.        Kurzbesprechungen, Preisen und Herkunftsangaben.  Newsgruppen:
  2281.        comp.sys.amiga.misc, comp.sys.amiga.introduction,
  2282.        comp.sys.amiga.programmer (monatlich) Ftp: rtfm.mit.edu,
  2283.        pub/usenet/comp.sys.amiga.misc Betreuer: Marc Atkins,
  2284.        atkin@cs.umass.edu
  2285.   
  2286.   *AmiTCP/IP FAQ*
  2287.        Dies ist für Anwender von AmiTCP/IP, einer Reihe von Programmen,
  2288.        die das Einbinden eines Amigas in ein TCP/IP-Netzwerk ermöglichen.
  2289.        (Die meisten bekannten Netze, das Internet z.B., benutzen TCP/IP.)
  2290.        Newsgruppen: comp.sys.amiga.misc, comp.sys.amiga.datacomm,
  2291.        comp.sys.amiga.networking (zweiwöchentlich) Ftp: rtfm.mit.edu,
  2292.        pub/usenet/comp.sys.amiga.networking Betreuer: Neil J. McRae
  2293.        (atcpfaq@domino.demon.co.uk)
  2294.   
  2295.   *Amiga Networking FAQ*
  2296.        Im Gegensatz zur AmiTCP/IP-FAQ möchte diese alle Aspekte des
  2297.        Netzwerkelns abdecken, z.B. auch Envoy.  Newsgruppen:
  2298.        comp.sys.amiga.datacomm, comp.sys.amiga.hardware Ftp:
  2299.        rtfm.mit.edu, pub/usenet/comp.sys.amiga.networking Betreuer:
  2300.        Richard Norman (norman@afas.msfc.nasa.gov)
  2301.   
  2302.   *Point Manager FAQ*
  2303.        Netzwerke scheinen wirklich kompliziert zu sein: Dies ist die
  2304.        dritte FAQ zum Thema, diesmal zu einem speziellen FidoNet-Client
  2305.        (einem sogenannten Point), dem Point Manager.  Newsgruppen:
  2306.        comp.sys.amiga.datacomm Ftp: rtfm.mit.edu,
  2307.        pub/usenet/comp.sys.amiga.datacomm Betreuer: Eric Krieger
  2308.        (pm_faq@quasar.hacktic.nl)
  2309.   
  2310.   *All about FTP*
  2311.        Erklärt den Umgang mit dem Filetransferprogramm FTP. Siehe FTP.
  2312.        Newsgruppen: comp.sys.amiga.misc (Monatlich) Ftp: Aminet,
  2313.        info/start Betreuer: Urban Dominik Müller
  2314.        (umueller@amiga.icu.net.ch)
  2315.   
  2316.   Das Amiga-FAQ-Archiv
  2317.   ********************
  2318.   
  2319.      Die Amiga-FAQ ist in verschiedenen Formaten erhältlich: Im
  2320.   Ascii-Format (wie sie in den Netzen gepostet wird), im
  2321.   AmigaGuide-Format (wie sie auf einem Amiga wohl am praktischsten ist)
  2322.   und im dvi-Format zum Ausdrucken. Weiter gibt es einige Dinge, die
  2323.   nützlich oder interessant sein könnten, die aber nicht in den Text
  2324.   eingebunden werden konnten:
  2325.        txt/amiga.history       Zur Geschichte des Amiga
  2326.        txt/story.txt           Die Commodore-Story (oder: Die Tramiel-
  2327.                                Story ;-)
  2328.        txt/amiga.newsgroups    Übersicht über comp.sys.amiga.*
  2329.        txt/amiga.sites         Liste von FTP-Servern
  2330.        txt/AmigaOverview.tex   Übersicht über die Amiga-Soft- und Hardware
  2331.        txt/Hardware.tips       Für Hardware-Bastler
  2332.        txt/Nullmodem.txt       Anleitung zum Bau eines Nullmodems
  2333.        src/JWSplit.c           Der Quelltext eines Dateisplitters
  2334.        src/JWJoin.c            Das Gegenstück zu JWSplit.c
  2335.        src/addtoc.c            Fügt ein Inhaltsverzeichnis zu mit texinfo
  2336.                                erzeugten doc's bei (dieser Text verwendet es)
  2337.   
  2338.      Um diese öffentlich zugänglich zu machen, habe ich mich dazu
  2339.   entschlossen, diese in einem Archiv zu sammeln. Es heißt
  2340.   `AmigaFAQxxxxxxg.lha', wobei xxxxxx das Datum der letzten Version ist.
  2341.   Sie finden es per FTP im Aminet, Directory `docs/misc'.
  2342.   
  2343.   Beiträge zur Amiga-FAQ
  2344.   **********************
  2345.   
  2346.      Die FAQ kann nicht nützlich sein und nicht weiterentwickelt werden
  2347.   ohne Ihre Hilfe. Vorschläge, Beiträge, neue Fragen und Antworten,
  2348.   Kritik, alles ist willkommen.
  2349.   
  2350.      Bitte beachten Sie, daß einige sehr wesentliche Themen bis jetzt
  2351.   unterrepräsentiert sind oder gänzlich fehlen: Nichts über Animation,
  2352.   Sound, Grafikkarten. (Alles über die *endgültige* Merlin-Software
  2353.   ...) Dies sind einige der Stärken des Amiga! Aber ich verstehe nichts
  2354.   davon :-(
  2355.   
  2356.      Also nehmen Sie ihre Tastatur (Ihren Bleistift? Na gut, wenn's sein
  2357.   muß...) und schreiben Sie an:
  2358.   
  2359.              Ignaz Kellerer
  2360.              Georg-Habel-Str. 11
  2361.        81241 München (Deutschland)
  2362.              Tel. (+49) 089 / 885147
  2363.        
  2364.              Internet: kellerer@informatik.tu-muenchen.de
  2365.   
  2366.   Danksagungen
  2367.   ************
  2368.   
  2369.      Meinen Dank an:
  2370.   *Reinhard Spisser and Sebastiano Vigna*
  2371.        für die Amiga-Version von TexInfo. Dieser Text wurde damit
  2372.        erstellt.
  2373.   
  2374.   *The Free Software Foundation*
  2375.        für die Originalversion von TexInfo und viele andere
  2376.        hervorragende Programme.
  2377.   
  2378.   *Dylan McNamee*
  2379.        für die Abschnitte über Editoren, Textverarbeitungen, DTP und
  2380.        PostScript.
  2381.   
  2382.   *Joseph Luk*
  2383.        für die Abschnitte über Chunky/Planar und Double-Buffering
  2384.   
  2385.   *Urban Dominik Müller*
  2386.        für die FAQ über FTP- und Mail-Server
  2387.   
  2388.   *Lars Hecking (lhecking@nmrc.ucc.ie)*
  2389.   *Philippe Brand (phb@colombo.telesys-innov.fr)*
  2390.        für den Abschnitt über gcc
  2391.   
  2392.   *Jochen Wiedmann (zrawi01@decap2.zdv.uni-tuebingen.de)*
  2393.        für die Zusammenstellung und das Posten der Amiga FAQ bis Juli
  2394.        1994.
  2395.   
  2396.   Index
  2397.   *****
  2398.   
  2399.   
  2400.   
  2401.    . (Ersatz für)                        Dot-Ersatz
  2402.    .arj                                   Endungen
  2403.    .dms                                   Endungen
  2404.    .gz                                    Endungen
  2405.    .lha                                   Endungen
  2406.    .lzh                                   Endungen
  2407.    .netrc                                 FTP
  2408.    .tar                                   Endungen
  2409.    .Z                                     Endungen
  2410.    .z                                     Endungen
  2411.    .zip                                   Endungen
  2412.    .zom                                   Endungen
  2413.    .zoo                                   Endungen
  2414.    68EC020                                68EC0xx
  2415.    68EC030                                68EC0xx
  2416.    68LC040                                68EC0xx
  2417.    A1200 (Festplatte)                     A1200-HD
  2418.    Aktuelles Directory                    Dot-Ersatz
  2419.    AmiBooksFAQ                            FAQs
  2420.    Amiga networking FAQ                   FAQs
  2421.    Amiga-FAQ-Archiv                       Amiga-FAQ-Archiv
  2422.    Amiga-libraries (gcc)                  Amiga-Libraries
  2423.    Amiga-Library-Disks                    Fish-Floppies
  2424.    AmigaBasic                             AmigaBasic
  2425.    AmigaSciSchool                         Infos
  2426.    Aminet                                 FTP
  2427.    AmiTCP/IP FAQ                          FAQs
  2428.    Anonymous                              FTP
  2429.    Assembler                              Compiler
  2430.    AutoDocs                               Include-Dateien
  2431.    Autoren (gcc)                          Autoren
  2432.    BBS                                    Mailbox
  2433.    Beiträge                              Beiträge
  2434.    C                                      Compiler
  2435.    C++                                    Compiler
  2436.    Catalog description                    Lokalisierung
  2437.    Catalog translation                    Lokalisierung
  2438.    CatComp                                Lokalisierung
  2439.    CATS                                   CATS
  2440.    Chunky                                 Chunky vs. Planar
  2441.    Commodore, Frankfurt                   Developer
  2442.    Commodore, West Chester                CATS
  2443.    Compiler                               Compiler
  2444.    Console window                         WindowPtr
  2445.    CrossDos                               MS-Dos-Disketten
  2446.    DaggeX                                 X11
  2447.    Danksagungen                           Danksagungen
  2448.    Dateiendungen                          Endungen
  2449.    Desktop Publishing                     DTP
  2450.    Developer                              Developer
  2451.    Dokumentation                          Dokumentation
  2452.    DoMethod                               Fehlende Funktionen
  2453.    DoSuperMethod                          Fehlende Funktionen
  2454.    Doublebuffering                        Doublebuffering
  2455.    Druckersteuerung                       Druckersteuerung
  2456.    DTP                                    DTP
  2457.    Editoren                               Editoren
  2458.    Emulationen                            Emulationen
  2459.    Endungen                               Endungen
  2460.    Enforcer                               68EC0xx
  2461.    Esc-Sequenzen                          Druckersteuerung
  2462.    FAQ's, andere                          FAQs
  2463.    FD-files                               Pragmas
  2464.    fd2inline                              Inline-Dateien
  2465.    fd2pragma                              Pragmas
  2466.    Fehlende Funktionen                    Fehlende Funktionen
  2467.    Festplatte (A1200)                     A1200-HD
  2468.    Fish-CD-Rom                            Fish-CD
  2469.    Fish-Disketten                         Fish-Floppies
  2470.    Fish-Disks                             Fish-Disk xxx
  2471.    Fish-PD-Serie                          Fish
  2472.    FishCon                                Infos
  2473.    FishXref                               Infos
  2474.    FlexCat                                Lokalisierung
  2475.    Forth                                  Compiler
  2476.    Fortran                                Compiler
  2477.    FPU                                    FPU
  2478.    Fresh Fish CD-Rom                      Fish-CD
  2479.    FTP-FAQ                                FAQs
  2480.    FTP-Servers                            FTP
  2481.    GadTools                               MUI
  2482.    Gcc                                    Der GNU C Compiler
  2483.    gen20                                  Inline-Dateien
  2484.    gen30                                  Inline-Dateien
  2485.    gen31                                  Inline-Dateien
  2486.    Geschichte                             Amiga-FAQ-Archiv
  2487.    GfxBase                                X11
  2488.    GigaMem                                68EC0xx
  2489.    Grafik                                 Grafik
  2490.    Hardwareanforderungen (gcc)            Anforderungen
  2491.    HD-Kompression                         HD-Kompression
  2492.    Hilfe (gcc)                            Hilfe
  2493.    Hirsch & Wolf                          CATS
  2494.    HookEntry                              Fehlende Funktionen
  2495.    HP-Deskjet                             Tintenstrahldrucker
  2496.    hunk2gcc                               Amiga-Libraries
  2497.    Include-Dateien                        Include-Dateien
  2498.    Informationen (gcc)                    Hilfe
  2499.    Inline-Dateien (gcc)                   Inline-Dateien
  2500.    Installation (gcc)                     Installation
  2501.    Kartuschen                             Tintenstrahldrucker
  2502.    Kataloge                               Lokalisierung
  2503.    KingFisher                             Infos
  2504.    KitCat                                 Lokalisierung
  2505.    Konsolenfenster                        WindowPtr
  2506.    LibAllocPooled                         Fehlende Funktionen
  2507.    Linux                                  Unix
  2508.    Lisp                                   Compiler
  2509.    locale.library                         Lokalisierung
  2510.    Localisierung                          Lokalisierung
  2511.    Mail-Listen                            Mail-Listen
  2512.    Mail-server                            Mail
  2513.    Mailbox                                Mailbox
  2514.    MakeCat                                Lokalisierung
  2515.    Manuale                                Dokumentation
  2516.    MMU                                    68EC0xx
  2517.    Modula-2                               Compiler
  2518.    Monitore                               Monitore
  2519.    MS-Dos-Disketten                       MS-Dos-Disketten
  2520.    Msh                                    MS-Dos-Disketten
  2521.    MUI                                    MUI
  2522.    Multiscan                              Monitore
  2523.    NDA                                    Developer
  2524.    NDK                                    Include-Dateien
  2525.    NDU                                    Include-Dateien
  2526.    NDUK                                   Include-Dateien
  2527.    NetBSD                                 Unix
  2528.    Oberon                                 Compiler
  2529.    Oberon-A                               Compiler
  2530.    Packer                                 Endungen
  2531.    Packer on Unix                         Endungen
  2532.    Pascal                                 Compiler
  2533.    Pipe (command)                         Pipe-Kommando
  2534.    PIPE:                                  Pipes
  2535.    Planar                                 Chunky vs. Planar
  2536.    Point manager FAQ                      FAQs
  2537.    PostScript                             PostScript
  2538.    Pragmas                                Pragmas
  2539.    Prolog                                 Compiler
  2540.    Quelltexte (gcc)                       Gcc-Quellen
  2541.    Queue-handler                          Pipes
  2542.    RAM, virtuelles                        68EC0xx
  2543.    RKM's                                  Dokumentation
  2544.    ROM Kernel Manuals                     Dokumentation
  2545.    Splitten von Dateien                   Splitten
  2546.    Stacker                                HD-Kompression
  2547.    TeX                                    TeX
  2548.    Text-Editoren                          Editoren
  2549.    Textbearbeitungssprachen               Textverarbeitungen
  2550.    Textverarbeitung                       Textverarbeitungen
  2551.    Tintenstrahldrucker                    Tintenstrahldrucker
  2552.    Unix                                   Unix
  2553.    Unix-LhA                               Unix-LhA
  2554.    Version (gcc)                          Aktuelle Version
  2555.    VGA                                    Monitore
  2556.    Wysiwyg                                Textverarbeitungen
  2557.    X11                                    X11
  2558.    XFH                                    HD-Kompression
  2559.    XPK                                    HD-Kompression
  2560.    _mchar                                 _mchar
  2561.    _pchar                                 _pchar
  2562.   
  2563.